【发布时间】:2026-02-13 18:55:01
【问题描述】:
我正在尝试对二维数组进行排序。原始数组是
5 0 3
4 1 2
3 1 1
4 2 2
3 3 1
排序的时候应该是这样的
3 1 1
3 3 1
4 2 2
4 1 2
5 0 3
这是我用来实现冒泡排序的代码,i代表行数。
int x,y,z,j,temp1,temp2,temp3;
for(x=0;x<i;x++)
{
for (j=0;j<i-1;j++)
{
if(a[j][0]>a[j+1][0])
{
temp1=a[j][0];
temp2=a[j][1];
temp3=a[j][2];
a[j][0]=a[j+1][0];
a[j][1]=a[j+1][1];
a[j][2]=a[j+1][2];
a[j+1][0]=temp1;
a[j+1][1]=temp2;
a[j+1][2]=temp3;
}
}
}
它仍然没有排序,任何帮助将不胜感激。
【问题讨论】:
-
你的括号风格很奇怪。
-
为什么
4 2 2出现在4 1 2之前? -
一个很好的提示是不要在循环之外使用变量
x。 -
您要对行或列进行排序吗?
-
如果您根据第一列排序,那么您只是对一维数组进行排序。很多算法..
标签: c arrays sorting multidimensional-array