C语言,while计算多个输入数字的平均值
时间: 2024-06-03 09:07:27 浏览: 180
#include <stdio.h>
int main() {
int n = 0; // 计数器
double sum = 0; // 求和变量
double num; // 输入的数字变量
printf("请输入数字,以0结束:\n");
scanf("%lf", &num); // 先读入第一个数字
while (num != 0) { // 如果不是0,就继续循环
sum += num; // 累加求和
n++; // 计数器加1
scanf("%lf", &num); // 读入下一个数字
}
if (n == 0) { // 如果没有输入数字
printf("没有数字输入!\n");
} else { // 否则输出平均值
double average = sum / n; // 计算平均值
printf("平均值为:%.2lf\n", average); // 输出平均值,保留两位小数
}
return 0;
}
相关问题
C语言while输入多个值算平均数,用什么条件来结束,不能输入多余的值
在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;
}
```
在这个程序中,用户可以连续输入数字,直到遇到空格或换行为止。如果输入了非数字字符,会提示用户重新输入。
C语言 用while从键盘输入10个整数,并找出其中的最小值,最大值,总和和平均值
好的,我明白了。关于你的问题,我可以提供以下C语言代码:
```c
#include <stdio.h>
int main()
{
int numbers[10]; // 用于存储输入的10个整数
int i = 0; // 循环计数器
int sum = 0; // 总和
int min = 0; // 最小值
int max = 0; // 最大值
float avg = 0.0f; // 平均值
// 从键盘输入10个整数
printf("请输入10个整数:\n");
while (i < 10) {
scanf("%d", &numbers[i]);
i++;
}
// 计算总和、最小值和最大值
sum = min = max = numbers[0];
for (i = 1; i < 10; i++) {
sum += numbers[i];
if (numbers[i] < min) {
min = numbers[i];
}
if (numbers[i] > max) {
max = numbers[i];
}
}
// 计算平均值
avg = (float)sum / 10;
// 输出结果
printf("最小值:%d\n", min);
printf("最大值:%d\n", max);
printf("总和:%d\n", sum);
printf("平均值:%f\n", avg);
return 0;
}
```
希望对你有所帮助。如果你有更多问题,请随时问我。
阅读全文