我已经开始了C编程课程,我必须构建一个程序来计算你输入的字符。它应该计算A-Z,0-9,a-z。我制作了这个程序,如下所示和附加的截图,但我无法输入多个字符。 正如你所看到的那样,我首先尝试使循环转到数字,但在第一次输入后它将不会转到下一个'scanf'。
https://i.gyazo.com/5fcc0d90688f2e27970506fd999a2c4b.png
#include <stdio.h>
int main()
{
char input;
int contorMAJ = 0, contorMIN = 0 , contorNR =0;
printf("Type a character(0-9,a-z,A-Z): ");
scanf("%c",&input);
while(input>=48 && input<=57 || input >= 65 && input <= 90 || input >= 97 && input <= 122 )
{
if(input>=48 && input<=57)
{
printf("Type another character(0-9,a-z,A-Z): ");
contorNR++;
scanf("%c",&input);
}
}
return 0;
}
答案 0 :(得分:2)
你在while循环中有一个return语句。它应该在while循环下吗?你只能通过循环一次。
答案 1 :(得分:0)
试试此代码
#include <stdio.h>
//#include<conio.h>
int main()
{
char input,x;
int contorMAJ = 0, contorMIN = 0 , contorNR =0;
printf("Type a character(0-9,a-z,A-Z): ");
//scanf("%c",&input);
input=getchar();
while(input>=48 && input<=57 || input >= 65 && input <= 90 || input >= 97 && input <= 122 )
{
getchar();
// scanf("%c",&x);
if(input>=48 && input<=57)
{
printf("Type another character(0-9,a-z,A-Z): ");
contorNR++;
}
input=getchar();
//scanf("%c",&input);
}
return 0;//`enter code here`
}
更新了代码
错误就像这样
1-当您从键盘读取第一个字符并按enter \n
时,将进入输入
2-与\n
条件相符不满意
3-因此,在代码中更新后,再使用一个getchar()
来获取\n
。