C语言while输入多个值算平均数,用什么条件来结束,不能输入多余的值
时间: 2024-10-03 20:02:58 浏览: 36
AC_AC值C语言实现_
在C语言中,如果你想通过`while`循环让用户输入多个数值并计算平均数,通常会在用户不再输入数字或输入特定字符(如回车后的空格、制表符、换行符或 EOF)时结束输入。你可以设置一个条件,比如当用户输入非数字字符时停止接收输入。以下是一个简单的示例:
```c
#include <stdio.h>
#include <ctype.h> // 需要用到ctype头文件判断字符类型
double sum = 0; // 存储总和
int count = 0; // 计数器,记录输入的数字个数
float average; // 平均值
// 判断是否为数字字符
int is_number(char c) {
return (isdigit(c) || (c == '-' && c != stdin->flags & __SGN));
}
int main() {
while (1) {
char input;
printf("请输入一个数字(按空格或换行结束输入):");
scanf("%c", &input); // 读取一个字符
if (isspace(input)) { // 如果是空白字符
break; // 结束循环
} else if (!is_number(input)) { // 否则如果不是数字字符
printf("无效的输入,请重新输入。\n");
continue; // 继续下一轮循环
}
int num;
if (sscanf(&input, "%d", &num) == 1) { // 尝试将输入转换为整数
sum += num;
count++;
} else {
printf("无法识别为数字,请重新输入。\n");
}
}
average = (float)sum / count; // 计算平均数
printf("平均数是: %.2f\n", average);
return 0;
}
```
在这个程序中,用户可以连续输入数字,直到遇到空格或换行为止。如果输入了非数字字符,会提示用户重新输入。
阅读全文