C语言函数设计问题。

输入N个正数(输入-1表示输入结束),把这些数从大到小排列,并输出它们的平均值。编写两个函数,一个用来排列,一个用来算平均值


#include<stdio.h>
void sort(int a[],int n)
{
    int i,j,temp;
    for (i = 0; i< n - 1; i++)  //比较n-1轮
    {
        for ( j = 0; j< n - 1 - i; j++)  //每轮比较n-1-j次,
        {
            if (a[j] > a[j+1]) //从小到大
            {
                temp = a[j];
                a[j] = a[j+1];
                a[j+1] = temp;
            }
        }
    }

}
float aver(int a[],int n)
{
    float sum=0;
    for(int i=0;i<n;i++)
       sum+=a[i];
    return sum/n;
}
int main()
{
    int a[100];
    int i,n=0;
    while(1)
    {
        scanf("%d",&a[n]);
        if(a[n]==-1)
           break;
        n++;
    }
    sort(a,n);
    printf("%f\n",aver(a,n));
    for(i=0;i<n;i++)
        printf("%d ",a[i]);
    return 0;
}
#include <stdio.h>

//选择排序函数
void ArraySort(){
    double a[100];
     int i, j,temp,count=0;
  while (a[count]!=-1)
 {
  count++;
  scanf("%d", &a[count]); 
 } 
 for (i = 0;i < count-1;i++)
 {
  for (j = i+1;j < count;j++)
  {
   if (a[j] > a[i])
   {
    temp = a[i];
    a[i] = a[j];
    a[j] = temp;
   }
  }
 }
    for (i = 0;i <= count;i++)
  {
   printf("%d", a[i]);
  }
}

//平均值计算函数
double Average_value(){
    double num,average;
    double a[100];
     int i, j,count=0,sum=0;
     while (a[count]!=-1)
 {
  count++;
  scanf("%d", &a[count]); 
 } 
    for (j = 1;j < count;j++)
  {
        sum+=a[j];
        num++;
    }
        average=(sum/num);
    return average;
}

int main()
{
    int a[100];
     int i, j,count = 0,temp,x,k;
     printf("输入你想排序的数字:");
     scanf("%d", &a[count]);
    ArraySort(a[count]);
    Average_value(a[count]);

   return 0;
}