本题要求编写程序,输入一行字符,统计其中数字字符、空格和其他字符的个数。建议使用switch语句编写。输入格式:输入在一行中给出若干字符,最后一个回车表示输入结束,不算在内。
求解为什么下列代码无法通过
#include
#include
int main()
{
char c;
int d,b,o;
d=b=o=0;
scanf("%c",&c);
while(c!='\n')
{
scanf("%c",&c);
switch(c)
{
case '0':
case '1':
case '2':
case '3':
case '4':
case '5':
case '6':
case '7':
case '8':
case '9':d++;
break;
case ' ':b++;
break;
default:o++;
break;
}
}
printf("blank = %d, digit = %d, other = %d",b,d,o);
return 0;
}
第一个scanf去掉,改成下面,后面的switch保持不变
while(1)
{
scanf("%c", &c);
if(c == '\n')
break;
........
}
while(c!='\n')
{
switch(c)
{
case '0':
case '1':
case '2':
case '3':
case '4':
case '5':
case '6':
case '7':
case '8':
case '9':d++;
break;
case ' ':b++;
break;
default:o++;
break;
}
scanf("%c",&c);
}