用c语言写一个程序,要求如下:从键盘上输入若干个正整数(如果遇到负数重新输入),如果遇到0停止输入,然后输出: (1)输入的所有正整数的平均值; (2)高于平均值的正整数的个数。
时间: 2023-06-11 18:08:40 浏览: 114
以下是用 C 语言编写的程序,实现上述要求:
```c
#include <stdio.h>
int main() {
int num, sum = 0, count = 0;
float avg;
printf("请输入正整数,遇到负数重新输入,遇到 0 停止输入:\n");
while (1) {
scanf("%d", &num);
if (num < 0) {
printf("输入了负数,请重新输入:\n");
continue;
}
if (num == 0) {
break;
}
sum += num;
count++;
}
if (count == 0) {
printf("没有输入正整数!\n");
return 0;
}
avg = (float) sum / count;
printf("输入的所有正整数的平均值为:%.2f\n", avg);
int above_avg_count = 0;
printf("高于平均值 %.2f 的正整数有:", avg);
while (1) {
scanf("%d", &num);
if (num < 0) {
printf("输入了负数,请重新输入:\n");
continue;
}
if (num == 0) {
break;
}
if (num > avg) {
above_avg_count++;
}
}
printf("%d 个\n", above_avg_count);
return 0;
}
```
注意,在第一次输入后,程序会一直等待用户输入,直到用户输入 0 才会停止输入。在第二次输入时,同样需要遵守第一次输入的规则:输入正整数,遇到负数重新输入,遇到 0 停止输入。如果输入的正整数个数为 0,则直接输出提示信息,并退出程序。
阅读全文