1. 问题
请问下面的代码有什么问题?
#include<stdio.h>
main()
{
int i=0,j=0,x=0;
char ch;
while((ch=getchar())!='\n')
{
scanf("%c",&ch);
if(ch>'A'&& ch<'z')
i++;
else if(ch>0 && ch<9)
j++;
else
x++;
}
printf("字母数=%d\n数字数=%d\n其他符号数=%d\n",i,j,x);
}
2. 回答
#include<stdio.h>
int main(void)
{
int i=0,j=0,x=0;
char ch;
printf("请输入:")
while((ch=getchar())!='\n')
{
if((ch >= 'A'&& ch <= 'Z') || (ch >= 'a'&& ch <= 'z'))
i++;
else if(ch>='0' && ch<='9')//应该是和字符‘0’和‘9’进行比较,即它们对应的ASCII码值,而不是数值
j++;
else
x++;
}
printf("字母数=%d\n数字数=%d\n其他符号数=%d\n",i,j,x);
return 0;
}