#include
int main()
{
void sort(float *x,int n);
int i,m;
float *p;
float a[1000];
p=a;
scanf("%d",&m);
for(i=0;iscanf("%f",p++);
}
p=a;
sort(p,m);
return 0;
}
void sort(float *x,int n)
{
int i,j,k,t;
float aver;
for(i=0;i-1;i++){
k=i;
for(j=j+1;jif(*(x+j)>*(x+k))k=j;
if(k!=i)
{
t=*(x+i);*(x+i)=*(x+k);*(x+k)=t; }
}
for(i=0;iprintf("max=%0.2f\nmin=%0.2f\navge=%0.2f",*x,*(x+n-1),aver/n);
}
修改如下,供参考:
#include <stdio.h>
int main()
{
void sort(float* x, int n);
int i, m;
float* p;
float a[1000];
p = a;
scanf("%d", &m);
for (i = 0; i<m;i++)
scanf("%f", p++);
p = a;
sort(p, m);
return 0;
}
void sort(float* x, int n)
{
int i, j, k, t;
float aver = 0;
for (i = 0; i < n - 1; i++) {
k = i;
for (j = k + 1; j < n; j++)
if (*(x + j) > *(x + k)) k = j;
if (k != i)
{
t = *(x + i); *(x + i) = *(x + k); *(x + k) = t;
}
}
for (i = 0; i < n; i++)
aver += *(x + i);
printf("max=%0.2f\nmin=%0.2f\navge=%0.2f", *x, *(x + n - 1), aver / n);
}