输入10个互不相等的正整数存入一维整型数组a中,要求对这10个数作相应的处理并按示例格式依次输出下列结果:
⑴最大值和最小值及其所在位置下标;
⑵平均值(保留1位小数);
⑶大于并最接近平均值的数及其所在位置下标
⑷小于平均值的数的个数;
⑸10个数按从小到大的顺序排列。
要求:
从键盘输入10个互不相等的正整数存入一维整型数组a中;
按样例格式依次输出以下各行:⑴最大值和最小值及其所在位置下标;
⑵平均值(保留1位小数);
⑶大于并最接近平均值的数及其所在位置下标
⑷小于平均值的数的个数;
⑸10个数按从小到大的顺序排列。
Maximum:a[5]=95
Minimum:a[0]=50
Average:72.5
Closestto:a[7]=75
Lessthan:5
Sort:
(注意:冒号后有1个空格!)
解析:
#includestdio.h
#defineN10
intmain()
{
inta[N],i,j,k,t,m,n,sum,max,min,Closest;
for(i=0,sum=0;iN;i++)
{
scanf(%d,a);
sum+=a;//求和
}
max=min=a[0];
for(i=0;iN;i++)
{
if(max=a)
{max=a;j=i;}//交换法求最大值,
if(min=a)
{min=a;k=i;}//交换法求最小值
}
printf(Maximum:\na[%d]=%d\nMinimum:\na[%d]=%d\n,j,max,k,min);
printf(Average:\n%.1f\n,(float)sum/10);
for(i=0;iN;i++)
if((float)sum/10a)
{
Closest=a;break;}//假设第一个大于平均数的值为Closest
for(i=0,n=0;iN;i++)
{
if((float)sum/10a)
{
if(Closesta)
{
Closest=a;m=i;}//交换法求Closest
n++;//求小于平均值的数的个数
}
}
printf(Closestto:a[%d]=%d\n,m,Closest);
printf(Lessthan:%d\n,n);
//交换排序法从小到大排序
for(i=0;iN-1;i++)
{
for(j=i+1;jN;j++)
if(aa[j])
{t=a[j];a[j]=a;a=t;}
}
printf(Sort:);
for(i=0;iN;i++)
printf(%d,a);
}
若此程序对你有帮助的话,记得点个赞哦,