C语言程序设计教程(第三版)课后习题6.2

C语言程序设计教程(第三版)课后习题6.2

语言学习从菜鸟开始

描述

输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。

输入
一行字符

输出
统计值

输入样例 1

aklsjflj123 sadf918u324 asdf91u32oasdf/.’;123
输出样例 1

23 16 2 4
解题思路:
1.由题意可知:输入一行字符(不是多行)。
2.这是我们就可以用while循环来写,将判断条件设为输入的字符,当输入换行时代表结束符,所以我们将条件设为!=‘\n’.
(笔者之前一直没注意到只输入一行字符时导致使用啦EOF从而评分器,显示答案错误 。)
3.在判断字母时主意大小写。这是有区别的。
4.最后打印的格式也可能会导致结果错误。

#include
int main()
{
	int a = 0,b = 0,c = 0,d = 0;
	char ch;
	while((ch = getchar())!='\n')
	{
		if((ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z'))
		{
			a++;
		}else if(ch == ' ')
		{
			b++;
		}else if(ch>='0'&&ch<='9')
		{
			c++;
		}else
		{
			d++;
		}
	}
	printf("%d %d %d %d\n",a,c,b,d);
	return 0;
}

感谢每一位看到这里的大佬,如有错误请指出。

你可能感兴趣的:(C语言,程序设计,c语言)