C语言编个程

来源:百度知道 编辑:UC知道 时间:2024/05/29 13:10:11
问题是:出16个随机数,都在35至50之间,去掉3个最大的,去掉3个最小的数后求剩余的数的平均数,并输出这16个数和所求的平均数.
要求能够出100组这样的数,并且它们的平均数是在45左右浮动(可有几组例外的)

#include<time.h>
#include<windows.h>
#include<stdio.h>
void main()
{
int i=0,j,k,temp,sum=0,q=0;
int sz[16];
srand((unsigned)time(NULL));
while(i++ < 100)
{ for(j=0;j<16;j++)
{ sz[j] = rand()%16+35;
printf("%d ",sz[j]);
}
for(j=0;j<3;j++)
for(k=j;k<16;k++)
{ if(sz[k]>sz[j]) { temp=sz[k]; sz[k]=sz[j]; sz[j]=temp; } //最大值放前三位
if (sz[k]<sz[16-j-1]) { temp=sz[16-j-1]; sz[16-j-1]=sz[k]; sz[k]=temp; } //最小值放后三位
}
printf("\n%d %d %d\n",sz[0],sz[1],sz[2]);
printf("\n%d %d %d\n",sz[13],sz[14],sz[15]);
for(j=3;j<16-3;j++) //计算中间10为的和
sum+=sz[j];
printf("\nav:%d\n",sum/(16-6));
if(sum/(16-6)-45>4 || 45-sum/(16-6)>4) q++;
sum=0;
}
printf("\n输出100组,平均值与45相差4以上的有:%d\n",q);
}