冒泡排序 二维数组 本人写的一个小程序,使二维数组各行按从小到大排列,但问题是最终输出时只有第一行

请问为什么???
#include<stdio.h>
void main()
{
int a[][3]={0,8,6,7,6,3,7,2,0};
int i,j,t;
for(i=0;i<2;i++)
for(j=0;j<3-i-1;j++)
{
if(a[0][j]>a[0][j+1])
{
t=a[0][j];
a[0][j]=a[0][j+1];
a[0][j+1]=t;
}
}
for(i=0;i<3;i++)
{
printf("%d ",a[0][i]);
}
}

for(i=0;i<3;i++)
{
printf("%d ",a[0][i]);
}
请注意这个部分,你输出肯定是只有第一行啦,二维数组应该用2个循环的,还有a[0][i],那就是只输出第一行咯,现在懂了吗
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-04-26
楼上的解释是正确的
输出应该是
for(j=0;j<3;j++)
{
for(i=0;i<3;i++)
{
printf("%d ",a[j][i]);
}
}
第2个回答  2012-04-26
各行并没有都按从小到大排序,只有二维数组的第一个数组元素实现了
第3个回答  2012-04-26
不知道
相似回答