C语言 要求输入任意个正整数,然后求其平均值,输入时以输入一个 0 作为终止标志,但 0 不计入数字的个数。
时间: 2024-10-07 22:02:24 浏览: 56
在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语言:输入一系列正整数(大于零的整数),并以-1作为结束标志,求平均值。要求使用while循环
在C语言中,你可以通过一个`while`循环来实现这个功能。下面是一个示例代码片段,它会让用户输入一系列正整数,直到遇到`-1`作为结束标志,然后计算它们的平均值:
```c
#include <stdio.h>
int main() {
int num, sum = 0, count = 0;
float average;
printf("请输入正整数 (输入 -1 结束): ");
// 使用while循环接收输入
while (scanf("%d", &num) == 1 && num != -1) { // scanf用于获取输入
sum += num; // 累加数值
count++; // 计数器加一
}
// 检查是否有输入,避免除以0的情况
if (count > 0) {
average = (float)sum / count; // 计算平均值并转换为浮点数
printf("平均值是: %.2f\n", average); // 打印结果,保留两位小数
} else {
printf("没有输入正整数。\n");
}
return 0;
}
```
在这个程序中,用户每输入一个正整数,我们就将其添加到`sum`中并增加计数器`count`。当输入 `-1` 或者不是整数时,`scanf`函数将返回0,循环就会终止。
阅读全文