C语言输入任意正数和字符,计算它们的和,输入数据小于零结束输入
时间: 2024-02-23 18:58:36 浏览: 67
好的,以下是相应的 C 语言代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
int main() {
int sum = 0;
char input[100];
int num;
while (1) {
printf("请输入一个正数或字符:");
fgets(input, 100, stdin);
if (sscanf(input, "%d", &num) == 1) { // 判断输入是否为数字
if (num < 0) {
break; // 结束输入
}
sum += num;
} else if (isalpha(input[0])) { // 判断输入是否为字母
printf("输入不合法,请重新输入!\n");
} else {
printf("输入不合法,请重新输入!\n");
while (getchar() != '\n'); // 清空缓冲区
}
}
printf("输入的数字之和为:%d\n", sum);
return 0;
}
```
这个程序与上面的 Python 版本类似,不过需要注意的是,在 C 语言中,判断输入是否为数字需要使用 `sscanf` 函数,并且需要包含 `ctype.h` 头文件才能使用 `isalpha` 函数来判断输入是否为字母。此外,为了防止输入不合法的数据导致程序错误,我们还需要在输入不合法时清空输入缓冲区。