用C语言编写 在数组x的10个数中求平均值v,找出和v绝对值相差最小的数组元素

2024-11-22 19:26:11
推荐回答(4个)
回答1:

//输入数组名,数组元素个数, 返回和v绝对值相差最小的数组元素。。

#include "math.h"

int f(int a[];int n){
int s=0;
for(int i=0;i s+=a[i];
int v=s/n;
int k; // k是和v绝对值相差最小的数组元素下标
int m=0x1FFFFFFF;
for(int i=0;i if( abs(a[i]-v) < m ){
k=i;
m=abs(a[i]-v);
}
}
return a[k];
}

回答2:

int main()
{
初始化数组;
min = x[0];

for()

{
ave+=x[i];
}
ave = ave /10;

for()

{
min=min>a[i]?a[i]:min;

}
printf()
}

回答3:

#include "stdio.h"
#include
void main()
{
int a[10]={4,3,44,23,54,23,54,21,12,32};
int i;
float ave=0;
for (i=0; i<10; i++)
{
ave += a[i];
}
ave /= 10;
int min = 0;
for (i=1;i<10;i++)
{
if (fabs(a[min]-ave) {
min = i;
}
}
printf("ave = %f %d %d\n",ave,min+1,a[min]);
}

回答4:

#include
#include
main()
{
int a[10],i,p=0;
float v=0.0,temp;
for(i=0;i<10;i++)
{
printf("a[%d]=",i);
scanf("%d",&a[i]);
v+=a[i];
}
v=v/10;
temp=abs(v-a[0]);
for(i=1;i<10;i++)
if (temp>abs(v-a[i]))
{
temp=abs(v-a[i]);
p=i;
}
for(i=0;i<10;i++)
printf("\na[%d]=%d",i,a[i]);
printf("\nThe most to average number is a[%d]=%d",p,a[p]);
}