for(i=0;i<l;i++)
for(j=0;j<l;j++)
if(z[j]<z[j+1])
{ a[0][0]=a[i][j];a[i][j]=a[i][j+1];a[i][j+1]=a[0][0];//这里一直出错,不知道什么原因
t[0]=z[j];z[j]=z[j+1];z[j+1]=t[0];}
z[ ]是每列的和,a[][]和z[]都是动态指针数列
请在你的程序里增加打印变量调试信息,例如加2句printf
{ a[0][0]=a[i][j];a[i][j]=a[i][j+1];a[i][j+1]=a[0][0];//这里一直出错,不知道什么原因
printf("i=%d,j=%d\n",i,j);
printf("a[i][j]=%d, a[i][j+1]=%d\n",a[i][j], a[i][j+1]);
t[0]=z[j];z[j]=z[j+1];z[j+1]=t[0];}
这样你就能知道哪里有错了,调试完之后,把这些内容//注释掉。