#include <stdio.h>
#define N 3
#define M 4
float average_1(float *p);//求平均值
int floatcmp(float a,float b);//比較
int main()
{
int i,j,flag;
float scores[N][M],*p1=scores;//p1=scores[0],p1指向首地址
for(i=0;i<N*M;i++)
scanf("%f",p1+i);//&(*(p1+i))
float *p[N]={scores[0],scores[1],scores[2]};
for(i=0;i<N;i++)//排序
{ int *temp;
flag=1;
for(j=0;j<N-i-1;j++)
{
if(floatcmp(average_1(p[j]),average_1(p[j+1]))<0)
{
flag=0;
temp=p[j];
p[j]=p[j+1];
p[j+1]=temp;
}
}
if(flag)
break;
}
for(i=0;i<N;i++)//輸出
{
for(j=0;j<M;j++)
printf("%7.2f",*(p[i]+j));
printf("\n");
}
return 0;
}
int floatcmp(float a,float b)
{
if(a>b)
return 1;
else if(a<b)
return -1;
else
return 0;
}
float average_1(float *p)
{
float s=0;//累加求和
int i=0;
for(i=0;i<M;i++)
s+=*(p+i);
return s/M;
}
輸出結果: