读书人

C程序 数组的排序(二维数组)

发布时间: 2012-02-22 19:36:56 作者: rapoo

求一个C程序 数组的排序(二维数组)
求一个二维数组的排序,
如 输入
1 2 3 4
1 1 4 5
4 5 2 1
3 4 5 6
排列后为
1 1 4 5
1 2 3 4
3 4 5 6
4 5 2 1
只根据前两位进行排序




[解决办法]
先比较下标0,若还是相等比较下标1,(可以取冒泡法)
比较完,两组数据换位置
[解决办法]
#include <stdio.h>

void main()
{
int a[4][5];
int i,j,p;
int st;
printf( "请输入数据\n ");
for(i=0;i <4;i++)
for(j=0;j <5;j++)
{scanf( "%d ",&a[i][j]);}

printf( "输出数据\n ");
for(i=0;i <4;i++)
{
for(j=0;j <5;j++)
{
printf( "%d ",a[i][j]);
}
printf( "\n ");
}
for(j=0;j <3;j++)
{
for (i=0;i <4-j;i++)
if (a[i][j]> a[i+1][j]) //这里错了
{
for(p=0;p <5;p++)
{
st=a[i][p];
a[i][p]=a[i+1][p];
a[i+1][p]=st;
}
}
}
printf( "输出数据\n ");
for(i=0;i <4;i++)
{
for(j=0;j <5;j++)
{
printf( "%d ",a[i][j]);
}
printf( "\n ");
}
}

读书人网 >C++

热点推荐