C语言 要求输入任意个正整数,然后求其平均值,输入时以输入一个 0 作为终止标志,但 0 不计入数字的个数。
时间: 2024-10-07 11:02:24 浏览: 81
在C语言中,你可以通过循环和条件判断来实现这个功能。下面是一个简单的示例程序:
```c
#include <stdio.h>
int main() {
int num = 0; // 用于存储输入的正整数
double sum = 0; // 用于累加所有输入的数字
int input; // 输入的临时变量
printf("请输入正整数(直到输入0为止): ");
while (scanf("%d", &input) == 1 && input != 0) { // 循环直到遇到0
num++;
sum += input;
}
if (num > 0) { // 如果有至少一个非零数字
double average = sum / num; // 计算平均值
printf("这些正整数的平均值是: %.2f\n", average);
} else {
printf("未输入任何正整数。\n");
}
return 0;
}
```
在这个程序中,我们不断从用户那里获取整数输入,直到用户输入0为止。每次输入都会增加计数器`num`并加到总和`sum`中。最后,如果输入了至少一个正整数,我们就计算平均值并打印出来;如果没有输入,则会显示相应的提示信息。
相关问题
输入任意个正整数求平均值c语言
在C语言中,如果你想输入任意个正整数并计算它们的平均值,可以使用动态内存分配和循环结构。下面是一个简单的示例程序:
```c
#include <stdio.h>
#include <stdlib.h> // 包含malloc和free函数
double calculate_average(int *numbers, int count) {
double sum = 0;
for (int i = 0; i < count; i++) {
scanf("%d", &numbers[i]); // 输入每个数字
sum += numbers[i];
}
return sum / count; // 计算平均值
}
int main() {
int n, *numbers; // n表示要输入的数字的数量
printf("请输入正整数的数量: ");
scanf("%d", &n);
// 动态分配内存,存储输入的n个整数
numbers = (int*) malloc(n * sizeof(int));
if (numbers == NULL) {
printf("内存分配失败!\n");
return 1;
}
// 遍历数组,读取所有数值,并计算平均值
double average = calculate_average(numbers, n);
printf("输入的正整数平均值为: %.2lf\n", average);
// 使用完内存后记得释放
free(numbers);
return 0;
}
```
c语言输入任意个整数求平均值
在C语言中,如果你想要输入任意个整数并计算它们的平均值,你可以使用循环结构,比如`while`或`for`,配合`scanf`函数读取用户的输入,并累加这些数字。这里是一个简单的示例:
```c
#include <stdio.h>
int main() {
int num, sum = 0, count = 0; // 初始化数值、总和和计数器
printf("请输入整数(输入-1结束):");
while (scanf("%d", &num) == 1 && num != -1) { // 循环直到用户输入-1
sum += num; // 累加数值
count++; // 计数器加一
}
if (count > 0) { // 防止除以零错误
float average = (float)sum / count;
printf("所有输入整数的平均值是: %.2f\n", average);
} else {
printf("未输入任何整数。\n");
}
return 0;
}
```
在这个程序中,用户可以连续输入整数,每输入一个就增加到总和中。当输入 `-1` 时,程序停止并计算平均值。如果用户没输入任何整数,会提示"未输入任何整数"。
阅读全文