本题目要求读入10个字符(不含回车)后以回车结束。统计10个字符中数字、空格、其它(不是数字、不是空格)字符的个数。
输入格式:
输入10个字符。最后以一个回车符结束。回车符不统计。
输出格式:
在一行内按如下格式输出( 其中的 =和 ,符号为英文状态输入):
digit=数字字符个数, blank=空格个数, other=其它字符个数
输入样例:
在这里给出一组输入。例如:
a& c 56d7*
输出样例:
在这里给出相应的输出。例如:
digit=3,blank=2,other=5
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
思路
digit
、blank 和other
分别表示数字、空格和其它字符的个数,初值均为0。- 使用 getchar() 函数循环读入10个字符,每读入一个字符,就根据其类型更新相应的计数器:
- 如果当前字符是数字,则
digit++
; - 如果当前字符是空格(包括空格、制表符
\t
、换行符\n
、回车符\r
等),则blank++
; - 如果当前字符既不是数字也不是空格,则
other++
。
- 如果当前字符是数字,则
代码
#include <stdio.h>
#include <ctype.h>
int main() {
char ch;
int digit = 0, blank = 0, other= 0;
for (int i = 0; i < 10; i++) {
ch = getchar();
if (ch == '\n') {
break;
}
if (ch>='0'&&ch<='9') {
digit++;
} else if (ch ==' ') {
blank++;
} else {
other++;
}
}
printf("digit=%d,blank=%d,other=%d", digit, blank, other);
return 0;
}