#include<stdio.h>int main(void){ int q=0,y=0,s=0,k=0; char c; while((c=getchar() != '\n')) { if(c=' ') k+=1; else if(c>='0' && c<='9') s+=1; else if((c>='a' && c<='z') || (c>='A' && c<='Z')) y+=1; else q+=1; } printf("字母个数为%d\n空格个数为%d\n数字个数为%d\n其他个数为%d\n",y,k,s,q); return 0;}为什么只计算空格得数
1 回答
慕用4063026
TA贡献195条经验 获得超115个赞
你那个第一句if(c=' ')这是赋值语句了,判断的全是空格。看我这个简单点
#include <stdio.h>
#include <stdlib.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int main(int argc, char *argv[]) {
int a,b,c,d,i;
char op;
printf("请输入十个字符\n");
a=b=c=d=0;
i=1;
for (i=1;i<=10;i++)
{op=getch();
if ((op>='a'&&op<='z')||(op>='A'&&op<='Z'))
{
a++;
putchar(op);
}
else if (op==' ')
{
b++;
putchar(op);
}
else if(op==13)
{
b++;
printf("←");
}
else if ((op>='1')&&(op<='9'))
{
c++;
putchar(op);
}
else
{
d++;
putchar(op);
}
}
printf("英文字母的个数为%d\n回车或者空格的个数为%d\n数字的个数为%d\n其他字符的个数为%d\n",a,b,c,d);
return 0;
}- 1 回答
- 0 关注
- 1325 浏览
添加回答
举报
0/150
提交
取消
