C语言二维数组冒泡排序 50
一个数组str[5][2],先按第一列从小到大排列,如果第一列的数字相同,则按第二列从小到大排列,这要怎么实现比较快呢?比如34排序之后变成133221212313322...
一个数组str[5][2],先按第一列从小到大排列,如果第一列的数字相同,则按第二列从小到大排列,这要怎么实现比较快呢?
比如 3 4 排序之后变成 1 3
3 2 2 1
2 1 2 3
1 3 3 2
2 3 3 4 展开
比如 3 4 排序之后变成 1 3
3 2 2 1
2 1 2 3
1 3 3 2
2 3 3 4 展开
展开全部
改好了,试试
#include<stdio.h>
int main()
{
int a[3][5]={{23,5,71,10,4},{39,23,7,85,-9},{36,12,52,-8,47}};
printf("输入数组:\n");
int i,j,k,s,d;
for(i=0;i<3;i++)
for(j=0;j<5;j++)
{
for(s=j;s<5;s++)
{
if(a[i][j]>a[i][s])
{
k=a[i][s];
a[i][s]=a[i][j];
a[i][j]=k;
}
}
}
for(i=0;i<3;i++)
{
for(j=0;j<5;j++)
printf("%5d",a[i][j]);
printf("\n");
}
printf("\n");
return 0;
}
#include<stdio.h>
int main()
{
int a[3][5]={{23,5,71,10,4},{39,23,7,85,-9},{36,12,52,-8,47}};
printf("输入数组:\n");
int i,j,k,s,d;
for(i=0;i<3;i++)
for(j=0;j<5;j++)
{
for(s=j;s<5;s++)
{
if(a[i][j]>a[i][s])
{
k=a[i][s];
a[i][s]=a[i][j];
a[i][j]=k;
}
}
}
for(i=0;i<3;i++)
{
for(j=0;j<5;j++)
printf("%5d",a[i][j]);
printf("\n");
}
printf("\n");
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询