求解答c语言题目
定义一个int类型的数组,数组元素为20个,随意赋20个100以内的值,再做以下处理1. <60的值都加上5,并存储到原来位置
2.求20个元素的平均值,并输出平均值
3.将20个元素按照将序排序,并输出大于平均值的元素
要求:while循环、for循环各自至少用到一次,上面三步处理分别用自定义函数实现,并经这三个函数放在自定义的头文件中,然后在主函数中调用它们,完成以上功能
程序代码:#include "stdio.h"
#include "conio.h"
void Print(int a[20]);
int *Pop1(int a[20])//<60的数+5
{
int i;
for (i=0;i<20;i++)
{
if (a[i]<60)
{
a[i]+=5;
}
}
return a;
}
float Average(int a[20])//求平均数
{
int aver=0;
float aver1;
for(int i=0;i<20;i++)
aver+=a[i];
aver1=(float)aver/20;
return aver1;
}
void Sort(int a[20])//排序并输出
{
int i,j;
float aver2;
for (i=1;i<20;i++)
{
for (j=0;j<20-i;j++)
{
if (a[j]<a[j+1])
{
int temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
printf("降序输出这个数组:\n");
Print(a);
printf("\n");
printf("输出其中大于平均数的元素:\n");
aver2=Average(a);
for (i=0;i<20;i++)
{
if (a[i]>aver2)
{
printf("%-4d",a[i]);
}
}
}
void Print(int a[20]) //输出
{
int i;
for (i=0;i<20;i++)
printf("%-4d",a[i]);
printf("\n");
}
int main()
{
int a[20];
int *p;
printf("输入20个小于100的整数:\n");
for (int i=0;i<20;i++)
{
printf("请输入第%d个数 :",i+1);
scanf("%d",a+i);
}
printf("您输入的数为 :\n");
Print(a);
p=Pop1(a);
printf("<60的数+5后,新数组为 :\n");
Print(p);
printf("这20个数的平均数为 :%f\n",Average(p));
Sort(p);
getch();
return 0;
}