#include <stdio.h>
#include <math.h>
#define N 5
float ave(int *a){
int i;
float sum=0;
for(i=0;i<N;++i)
sum += a[i];
return sum/N;
}
int cpa(int *a){
int i,j,tmp;
float s;
s = ave(a);
for(i=0;i<N-1;++i){
for(j=0;j<N-i-1;++j){
if(fabs(a[j] - s) > fabs(a[j+1] - s)){ //依次比较各个元素与平均数绝对值,并按绝对值大小,对数组元素重新排序
tmp = a[j];
a[j] = a[j+1];
a[j+1] = tmp; //绝对值小的元素排在前面
}
}
}
return a[0]; //第一个元素与平均数相差最小,返回该元素。
}
int main(void){
int a[N];
int i,c;
float s;
printf("请输入%d个整数:",N);
for(i=0;i<N;++i)
scanf("%d",&a[i]);
s = ave(a);
c = cpa(a);
printf("这个%d个数的平均值是:%f。最接近平均值的数是:%d",N,s,c);
return 0;
}
输入五个整数,找出与平均值最接近的数并输出(数组解决)
最新推荐文章于 2023-12-27 11:24:31 发布