用C语言给我写一个求任意十进制数之和,如果输入不符合要求,重新输入,先判断输入是否符合非负正整数要求
时间: 2024-09-18 14:17:08 浏览: 35
将非负十进制整数转化为八进制
5星 · 资源好评率100%
在C语言中,我们可以编写一个简单的程序来实现这个功能。首先,我们需要检查用户输入是否是非负正整数,然后将它们相加。以下是代码示例:
```c
#include <stdio.h>
int getValidInput() {
int num;
while (1) {
printf("请输入一个非负正整数(0到最大整数值),或者输入-1结束:");
if (scanf("%d", &num) == 1 && num >= 0 && num != -1) {
return num;
}
else {
printf("输入无效,请重新输入。\n");
clearerr(stdin);
}
}
}
int main() {
int sum = 0, continue_input = 1;
while (continue_input) {
int current_num = getValidInput();
if (current_num == -1)
break; // 用户选择结束输入
sum += current_num;
printf("已添加数字 %d,当前总和为 %d\n", current_num, sum);
}
printf("最终总和为 %d。\n", sum);
return 0;
}
```
在这个程序中,`getValidInput()`函数会持续获取用户的输入,直到用户输入-1为止。如果输入的是一个非负正整数,就将其加到`sum`上并继续询问;否则提示用户重新输入。
阅读全文