7、【编写程序】从键盘输入N(N<100)个正数(输入-1表示输入结束),把这些数从大到小进行排序后输出排序结果,并输出这N个数的平均值。要求:自己编写两个函数sort与avg,其中sort函数完成排序并输出排序结果,avg函数完成求平均值并输出结果的功能。【测试样例】 输入:1 5 8 7 4 9 2 -1输出:排序结果为:9 8 7 5 4 2 1 这组数的平均值为:5.142857输入:6 8 7 2 3 -1输出:排序结果为:8 7 6 3 2 -1 这组数的平均值为:5.2
#include <stdio.h>
void sort(int a[],int n) {
int i,j,t;
for(i=0; i<n-1; i++) {
for(j=0;j<n-i-1;j++){
if(a[j]<a[j+1]){
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}
printf("排序结果为:");
for(i=0;i<n;i++){
printf("%d ",a[i]);
}
}
void avg(int a[],int n){
int i,s=0;
double ave;
for(i=0;i<n;i++){
s+=a[i];
}
ave = s*1.0/n;
printf("\n这组数的平均值为:%f",ave);
}
int main () {
int n,i=0,a[100];
while(1) {
scanf("%d",&n);
if(n==-1) {
break;
}
a[i]=n;
i++;
}
sort(a,i);
avg(a,i);
return 0;
}