循环输入字符,累加所输入的数字字符个数、英语字符个数及其它字符个数,如果是数字字符,则将所有的数字字符对应的数据累加起来,输出数字字符个数、数字字符对应数据累加和、英语字符个数、其它字符个数。当输入的是半角(英文)叹号“!”时终止循环。
要求:
用while设计一个无穷循环,每次从键盘读入一个字符,如果这个字符是数字字符(0~9),则将所有输入的数字字符对应的数据(如数字字符’9’对应的数据是9,而不是ASCII码值57。)累加起来,并且数字字符个数增加1,如果输入的字符是英语字符,则对应的英语字符个数增加1,否则其它字符个数增加1,如果输入的字符是半角(英文)叹号“!”,则使用break语句终止整个循环。要求用自增运算符实现字符个数增加1。程序运行后至少输入两个个数字字符、一个大写英语字符和一个小写英语字符、一个其它字符,以便验证程序是否正确。
循环结束后输出数字字符个数、数字字符对应数据累加和、英语字符个数、其它字符个数。
程序代码
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
int sum=0, m=0, n=0,x ,y=0;
char c;
while (x = 1)
{
scanf("%c", &c);
getchar();
if (c == '!')
break;
else if (c >= '0' && c <= '9')
{
n++;
sum = sum + (c - '0');
}
else if ((c >= 'a' && c <= 'z') || (c >= 'A' || c <= 'Z'))
m++;
else
y++;
}
printf("数字字符个数%d, 数字字符对应数据累加和%d,英语字符个数%d, 其它字符个数%d",n,sum,m,y);
return 0;
}
注:第一行的声明为使用VS较新版本避免SCANF报错而使用。跟使用的编译器有关。
程序运行结果
标签:字符,数字,个数,累加,英语,输入 From: https://blog.51cto.com/u_15840186/5784541