c语言输出n个成绩中小于平均值并且最接近平均值的数.

2024-12-18 16:54:42
推荐回答(2个)
回答1:

#include
#include
using namespace std;
int cmp(const void *a,const void *b)//快速排序的比较函数
{
return *(int *)a - *(int *)b;
}
int main()
{
int n,a[25],i,ans=-1;//ans是保存最终的答案
float count=0,ava;//ava是平均值
cin>>n;
for(i=0; i{
cin>>a[i];
count =a[i];//存储总和
}
qsort(a,n,sizeof(a[0]),cmp);//快速排序
ava = count/n;
for(i=0 ;iif(a[i]ans = a[i];
else//如果大于平均值,说明已经找到,就可以退出了
break;

cout<<"平均值是:"<return 0;
}

如果我的回答解决了你的问题,请采纳,这是对我劳动的尊重。我花了时间为你写程序,如果你不懂再问我。

回答2:

#include#includevoid main(){ int i; double a[10],s,ave,max,min,q,w; max=0; min=99999; printf("请输入十个数:\n"); for (i=0;i<=9;i++) { scanf("%lf",&a[i]); } s=0; for(i=0;i<=9;i++) { s=s+a[i]; } ave=s/10; { for(i=0;i<=9;i++) { if(a[i]>=ave) { if(a[i]max) max=a[i]; } q=max-ave; w=min-ave; } if(fabs(q)==fabs(w)) printf("%lf\n%lf\n",min,max); else if(fabs(q)>fabs(w)) printf("%lf\n",min); else if(fabs(w)>fabs(q)) printf("%lf\n",max);}