C语言编写main从键盘上输入10个整数到数组list中,编函数greater输出其中所有大于0的数的平均值,编函数less输出所有小于0的数的平均值(保留至小数点后2位),若没有小于0或者大于0的数,则相应的平均值输出0.00;编main函数调用上面的2个函数,输出结果。
时间: 2024-09-26 22:15:33 浏览: 40
C语言TOP-K问题(从一堆数据中找出最大的k个数或者最小的k个数)
在C语言中,你可以按照以下步骤完成这个任务:
首先,创建一个动态数组`list`用于存储用户输入的10个整数。然后定义两个函数,`greater()`和`less()`分别计算大于0和小于0的数的平均值。
```c
#include <stdio.h>
#include <stdlib.h>
// 函数原型声明
double greater(int *arr, int size);
double less(int *arr, int size);
int main() {
int list[10];
int i;
// 输入10个整数
printf("请输入10个整数:\n");
for (i = 0; i < 10; i++) {
scanf("%d", &list[i]);
}
// 调用函数计算并输出结果
double avg_greater = greater(list, 10);
double avg_less = less(list, 10);
// 输出结果
if (avg_greater > 0) {
printf("大于0的数的平均值:%.2f\n", avg_greater);
} else {
printf("大于0的数的平均值:0.00\n");
}
if (avg_less > 0) {
printf("小于0的数的平均值:%.2f\n", avg_less);
} else {
printf("小于0的数的平均值:0.00\n");
}
return 0;
}
// 函数实现:计算大于0的数的平均值
double greater(int *arr, int size) {
double sum = 0, count = 0;
for (int i = 0; i < size; i++) {
if (arr[i] > 0) {
sum += arr[i];
count++;
}
}
return count > 0 ? sum / count : 0.00;
}
// 函数实现:计算小于0的数的平均值
double less(int *arr, int size) {
double sum = 0, count = 0;
for (int i = 0; i < size; i++) {
if (arr[i] < 0) {
sum += arr[i];
count++;
}
}
return count > 0 ? sum / count : 0.00;
}
```
运行这段程序后,它会提示用户输入10个整数,并根据输入的数据计算大于0和小于0的数的平均值。如果没有满足条件的数值,相应的平均值将输出为0.00。
阅读全文