这道题不会做,网上看来的答案如下:
#include<stdio.h>
int main()
{
char ch;
int i;
int l = 0, b = 0, d = 0, o = 0;
for (i = 0; i < 10; i++)
{
// ch=getchar();
scanf("%c", &ch);
if (ch >= '0' && ch <= '9')
{
d++;
}
else if ((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z'))
{
l++;
}
else if (ch == ' ' || ch == '\n')
{
b++;
}
else
{
o++;
}
}
printf("letter = %d, blank = %d, digit = %d, other = %d", l, b, d, o);
return 0;
对于scanf("%c", &ch);需要设置在for循环里不是很理解。实际编译运行的时候是直接输入了一长串字符后就直接给出结果了,并没有反复要求输入。我猜测是scanf函数接收到一串字符后循环重新开始自动调用下一个字符直到字符串结束?可是ch是char类型接收不了字符串啊?难道自动变成字符串,scanf接收到字符串的指针自己一个个往后处理到结束?
--
修改:jackylx2008 FROM 111.205.208.*
FROM 111.205.208.*