编写程序,输入若干个字符,分别统计其中英文字母、数字字符和其他字符的个数。
#include<stdio.h>
int main(void)
{
char a;
int yw=0,sz=0,qt=0;
printf("输入若干字符:");
while((a=getchar())!='\n');
{
if(a>='a'&&a<='z'||a<='Z'&&a>='A')
yw=++yw;
else if((a>='0')&&(a<='9'))
sz=sz++;
else
qt=qt++;
}
printf("yw:%d\nsz:%d\nqt:%d\n",yw,sz,qt);
return 0;
}
最后输出的就是 0 0 1 不管打进去什么数字 请问为什么
为什么呢求指教!
追答while后的分号是一个空语句,这样你接收到的东西只有最后一个非'\n'的字符存在了a里面.
自增自减运算符本身就有赋值的副作用,yw=++yw;你这么做是多此一举..
sz=sz++; 除了多此一举,你这么做甚至可能导致出错.
谢谢!!