用指针编写程序,输入10个数,计算所有正数的平均值,输出所有正数中大于平均值的元素。
时间: 2023-06-16 18:07:26 浏览: 322
下面是一个用指针编写的程序,实现了你的需求:
```c
#include <stdio.h>
int main() {
int nums[10];
int *p = nums;
int sum = 0, count = 0, avg = 0;
printf("请输入10个整数:\n");
for (int i = 0; i < 10; i++, p++) {
scanf("%d", p);
if (*p > 0) { // 只统计正数
sum += *p;
count++;
}
}
if (count > 0) {
avg = sum / count;
printf("所有正数的平均值为:%d\n", avg);
printf("大于平均值的正数有:");
p = nums;
for (int i = 0; i < 10; i++, p++) {
if (*p > avg) {
printf("%d ", *p);
}
}
printf("\n");
} else {
printf("没有输入正数!\n");
}
return 0;
}
```
程序首先定义了一个长度为10的整型数组 `nums`,以及一个指向该数组的指针 `p`。然后程序通过循环输入10个整数,并判断每个数是否为正数。如果是正数,则累加到 `sum` 变量中,并将 `count` 变量加1,以便后面计算平均值。
接着,程序判断 `count` 是否大于0。如果大于0,则计算出平均值并输出。然后,程序再次使用指针循环遍历数组,输出大于平均值的正数。
最后,程序返回0表示正常结束。
阅读全文