c++编程中怎样将动态二维数组的列按照列的和的大小进行排序??是动态二维数组哈!!求高手帮忙啊!

如题所述

第1个回答  2013-06-16
动态和静态是一样的呀,首地址都知道了呀。
为了高效,先把列的和计算出来存到一个另一个二维数组中,这个新的二维保存动态二维数组的下标和列的和值,先对这个二维进行排序。然后用排序结果去移动动态二维,可以使用memcpy整行移动。
第2个回答  2013-06-16
请把你的组数的是怎么定义的写出来吧追问

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];}

这样你就能知道哪里有错了,调试完之后,把这些内容//注释掉。

本回答被提问者采纳
相似回答