首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

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

2012-02-22 
求一个C程序 数组的排序(二维数组)求一个二维数组的排序,如输入1234114545213456排列后为1145123434564521

求一个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 ");
}
}

热点排行