大家好,可以帮我解决一个C语言问题吗?
问题是:题目是:输入一串字符,直到输入一个星号(*)为止,统计(输出)其中的字母的个数和数字字符的个数。
我写的程序是:#include<stdio.h>
main()
{char ch;int i=0,j=0;
scanf("%c",&ch);
while(ch!='*')
{if(ch>='a'&&ch<='z'||ch>='A'&&ch<='Z')i++;
if(ch%2==0||ch%2==1)j++;
scanf("%c",&ch);
}
printf("i=%d,j=%d",i,j);
}
我出入了1 2 3 * 运行结果显示i=0,j=6;
我的问题是1。按照结果,j++运行了6次,为什么不是3次?
2.题目叫我出入字符,那么按照定义不是应该是char吗?但是假如我输入数字的话不是应该定义int吗,(也就是说,我定义的时候应该定义char还是int,)
-----本人刚刚学C语言,虚心求教。谢谢
[解决办法]
6是因为有空格吧
[解决办法]
我定义的时候应该定义char还是int
int
[解决办法]
空格不被接受,需要使用正则
scanf("%[^\n]",a);
[解决办法]