做一个c语言程序循不输入字行,累加所输入的数字字符个数,英语字符个教及其它字符个数,如果是数字字符,则将所有的数字字符对应的数据累加起来,输出数字字符个数.数字字符对应数据累加和、英语字符个数 其它字符个数。当输入的是半角(英文)叹号时终止循环
时间: 2023-08-31 07:40:36 浏览: 101
### 回答1:
以下是一个可能的C语言程序,可以实现您所描述的功能:
```c
#include <stdio.h>
int main() {
int digit_count = 0, digit_sum = 0, letter_count = 0, other_count = 0;
char c;
while ((c = getchar()) != '!') {
if (c >= '0' && c <= '9') {
digit_count++;
digit_sum += c - '0';
} else if ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z')) {
letter_count++;
} else {
other_count++;
}
}
printf("数字字符个数:%d,数字字符对应数据累加和:%d,英语字符个数:%d,其它字符个数:%d\n", digit_count, digit_sum, letter_count, other_count);
return 0;
}
```
当用户输入半角叹号时,程序会终止循环,并输出统计结果。程序中使用了 getchar() 函数来逐个读取用户输入的字符,并根据字符的类型进行统计。
### 回答2:
首先,我们需要一个循环来持续输入字符,直到输入的字符为半角叹号为止。我们可以使用一个while循环来实现这个任务。
在循环中,我们需要判断输入的字符是数字字符还是英语字符还是其他字符。可以使用ctype.h头文件中的isdigit()函数来判断字符是否为数字字符,isalpha()函数来判断字符是否为英语字符。
如果输入的字符是数字字符,则我们需要把它转换成数字再进行累加。我们可以使用atoi()或者字符与'0'相减的方法来将字符转换成数字。
下面是用C语言实现这个程序的示例代码:
```c
#include <stdio.h>
#include <ctype.h>
int main() {
char input;
int digitCount = 0;
int digitSum = 0;
int letterCount = 0;
int otherCount = 0;
printf("请输入字符:\n");
while(1) {
scanf("%c", &input);
if (input == '!') {
break;
}
if (isdigit(input)) {
digitCount++;
digitSum += input - '0';
}
else if (isalpha(input)) {
letterCount++;
}
else {
otherCount++;
}
}
printf("数字字符个数:%d\n", digitCount);
printf("数字字符对应数据累加和:%d\n", digitSum);
printf("英语字符个数:%d\n", letterCount);
printf("其他字符个数:%d\n", otherCount);
return 0;
}
```
运行程序后,依次输入字符,直到输入半角叹号"!"为止。程序会自动统计数字字符个数、数字字符对应数据累加和、英语字符个数和其他字符个数,并输出结果。
### 回答3:
以下是一个使用C语言编写的程序,实现循环输入字符并进行字符分类统计和累加的功能:
```c
#include <stdio.h>
int main() {
char ch;
int digit_count = 0; // 数字字符个数
int digit_sum = 0; // 数字字符对应数据累加和
int letter_count = 0; // 英语字符个数
int other_count = 0; // 其它字符个数
while (1) {
printf("请输入一个字符(输入半角叹号结束循环): ");
fflush(stdin);
scanf("%c", &ch);
if (ch == '!') {
break; // 输入半角叹号时结束循环
}
if (ch >= '0' && ch <= '9') {
digit_count++;
digit_sum += (ch - '0');
} else if ((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z')) {
letter_count++;
} else {
other_count++;
}
}
printf("数字字符个数: %d\n", digit_count);
printf("数字字符对应数据累加和: %d\n", digit_sum);
printf("英语字符个数: %d\n", letter_count);
printf("其它字符个数: %d\n", other_count);
return 0;
}
```
这个程序会在循环中提示用户输入一个字符,然后根据输入的字符进行判断和统计。当输入的字符是半角(英文)叹号时,循环终止。在循环过程中,根据字符的不同,程序会将数字字符的个数累加、数字字符对应的数字累加和计算、英语字符的个数累加或其它字符的个数累加。最后,程序会输出数字字符个数、数字字符对应数据累加和、英语字符个数和其它字符个数。
阅读全文