求解答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; }