C代码和运行结果如下:
统计结果正确,望采纳~
附源码:
#include <stdio.h>
int main() {
char s[100]
fgets(s, 100, stdin)// 输入一行字符,包括行尾的'\n'
int i = 0, upper = 0, lower = 0, space = 0, digit = 0, other = 0
while (s[i] != '\n') {
if (s[i] >= 'A' &&s[i] <= 'Z')
upper++
else if (s[i] >= 'a' &&s[i] <= 'z')
lower++
else if (s[i] == ' ')
space++
else if (s[i] >= '0' &&s[i] <= '9')
digit++
else
other++
i++
}
printf("大写字母:%d, 小写字母:%d, 空格:%d, 数字:%d, 其他:%d\n",
upper, lower, space, digit, other)
return 0
}
呵呵,这个问题我也想过,想出了一个不怎么成熟的办法。#include<stdio.h>
void
main()
{
int
a[100],num=0
char
k
do
{
scanf("%d",&a[num])
num++
k=getchar()
}while(k!='\n'&&num<100)
}
这样以空格隔开各个数字,输入若干以后按回车即可。
但是容错性不好,如果结尾在按回车前多输入了一个空格,那么将继续循环。
如果提升了容错性,那么代码将变得比较复杂。