有人可以帮忙, 我尝试编写一个程序来读取字符,并输出 1 到较低的字符,2 到较高的字符,如果不是字母则输出 -1。程序应该继续工作,直到输入为零
我不明白为什么下面的代码; 在“if”块的所有情况下保持 print -1;
我尝试两种方法:
try 1:
#include<stdio.h>
int main(){
char entrada = 'x';
while (entrada != 48){
scanf("%c", &entrada);
if(entrada > 96 && entrada < 123){
printf("%d\n", 1);
} else if (entrada > 64 && entrada < 91) {
printf("%d\n", 2);
} else {
printf("%d\n", -1);
}
}
return 0;
}
try 2:
#include<stdio.h>
int main(){
char entrada = 'x';
int teste;
while (entrada != 48){
scanf("%c", &entrada);
if(entrada > 96 && entrada <123){
printf("%d\n", 1);
continue;
} else {
if (entrada > 64 && entrada < 91) {
printf("%d\n", 2);
continue;
} else if(entrada <= 64 || (entrada >= 91 && entrada <= 96)
|| entrada >= 123 ) {
printf("%d\n", -1);
continue;
}
}
}
return 0;
} `
当您的程序(其中任何一个)执行
scanf("%c", &entrada);
时,scanf
会读取单个字符。
当您键入“a”并按 Enter 或 Return 时,两个字符将发送到您的程序:“a”和换行符。
当您的程序读取“a”时,它会打印“1”。
当你的程序读取换行符时,它会打印“-1”。
所以,只要你输入一个字符并按 Enter 或 Return,你的程序就会打印两个数字:一个代表第一个字符,一个代表换行符。