C程序设计第五章作业4
程序员成长之旅 · 程序员成长之旅/C语言/习题(C语言程序设计)/第五章习题 · 181 字
问:
分别计算 字母 空格 数字 和其他字符 的个数
答:
#include<stdio.h> //分别计算 字母 空格 数字 和其他字符 的个数
#include<limits.h>
int main()
{
char c;
int flag = 0, Letter = 0, Number = 0, Space = 0, Other = 0;
while ((c=getchar())!='\n')
{
if (c>='a'&&c<='z'||c>='A'&&c<='Z')
{
flag = 1;
}
else if (c >= '0'&&c <= '9')
{
flag = 2;
}
else if (c == ' ')
{
flag = 3;
}
else
{
flag = 4;
}
if (flag&&Letter&&Number&&Space&&Other > INT_MAX)//防止超出范围导致异常
{
setbuf(stdin, NULL);
printf("Data is error!\n");
return 0;
}
switch (flag)//每统计到一个复合的条件 就加一
{
case 1:Letter++; break;
case 2:Number++; break;
case 3:Space++; break;
case 4:Other++; break;
default:
{
setbuf(stdin, NULL);
printf("Data is error!\n");
return 0;
break;
}
}
}
printf("Words:\t[%d]\nNumber\t[%d]\nSpace\t[%d]\nOther\t[%d]\n", Letter, Number, Space, Other);
return 0;
}