输入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;
}