C语言求一批数中大于平均值的数的和,使用int型函数average_sum
时间: 2024-02-18 18:00:17 浏览: 24
好的,下面是代码实现:
```
#include <stdio.h>
int average(int arr[], int n); // 声明求平均数的函数
int average_sum(int arr[], int n); // 声明求大于平均数的数的和的函数
int main()
{
int arr[100]; // 数组
int n; // 数组长度
int i; // 循环计数器
printf("请输入数组长度:");
scanf("%d", &n);
printf("请输入%d个数:\n", n);
for(i = 0; i < n; i++)
{
scanf("%d", &arr[i]);
}
printf("大于平均值的数的和为:%d\n", average_sum(arr, n));
return 0;
}
int average(int arr[], int n)
{
int i;
int sum = 0;
for(i = 0; i < n; i++)
{
sum += arr[i];
}
return sum / n;
}
int average_sum(int arr[], int n)
{
int i;
int sum = 0;
int avg = average(arr, n);
for(i = 0; i < n; i++)
{
if(arr[i] > avg)
{
sum += arr[i];
}
}
return sum;
}
```
代码解析:
和上面的代码实现类似,只是把返回值类型从float改为了int型。需要注意的是,由于整数除法的结果是整数,因此在计算平均数时,如果不想丢失精度,可以将sum和n都声明为float型,然后返回sum / (float)n。