这错在哪
#include <stdio.h> void scoresum(int *parray[],int size);
void scoresort(int *parray[],int size);
main()
{
int a[100][5]; // a[i][1]保存语文成绩, a[i][2]保存数学成绩,a[i][3]保存英语成绩,a[i][4]保存总分
int *pa[100];
int i,j,n;
scanf("%d",&n);
for(i=1; i<=n; i++)
{
pa[i]=a[i];//指针输入pa的每一项指向二维数组a的i行0列的地址。
}
for(i=1; i<=n; i++)
for(j=1;j<=3;j++)
scanf("%d",*(pa+i)+j);
//调用scoresun函数,传入数组a和数组长度,由于数组是传地址,所以在scoresum中算出并保存array[i][4],也就是保存到实参数组a[i][4]中了。
scoresum(pa,n);
//调用scoresort函数,传入数组a和数组长度,由于数组是传地址,所以在scoresort中把形参数组array排好序,也就是把实参数组a排好序了。
scoresort(pa,n);
//输出排序后的数组
for(i=1; i<=n; i++)
{
for(j=1;j<=4;j++)
printf("%d ",a[i][j]);
printf("\n");//输出完一行学生成绩后,换行,准备输出下一个学生成绩
}
}
void scoresum(int *parray[],int size)
{ int i;
for(i=1; i<=size; i++)
parray[i][4]=parray[i][1]+parray[i][2]+parray[i][3]; //求总分
}
void scoresort(int *parray[],int size)
{
int i, j,k,*t; //选择排序法
for(i=1;i<=size-1;i++)
{
k=i;
for(j=i+1;j<=size;j++)
{
if(parray[j][4]>parray[k][4]) //总分进行比较
k=j;
}
if(k!=i)
{
for(j=1;j<=4;j++)
{*t=parray[k][j];
parray[k][j]=parray[i][j];
parray[i][j]=*t;}
}
}
}