龙空技术网

如何用冒泡排序法对二维数组的每一行每一列从小到大排序?

c语言小白看我主页 156

前言:

今天各位老铁们对“数组排序c语言数组”都比较珍视,咱们都需要了解一些“数组排序c语言数组”的相关文章。那么小编同时在网络上汇集了一些对于“数组排序c语言数组””的相关知识,希望咱们能喜欢,同学们快快来了解一下吧!

废话少说,关键问题在于排列的时候保持列/行不变

代码如下

#include<stdio.h>

int main()

{ int a[5][4]={{140,139,138,137},{136,135,134,133},{132,131,130,129},{128,127,126,125},{124,123,122,121}};//初始化

int i,j,t,k,p;

printf("排序前:\n");

for (i = 0; i < 5; i++)

{

for (j = 0; j <4; j++)

{

printf("%4d",a[i][j]);

}

printf("\n");

}

for(i=0;i<5;i++)//对行排列

{

for(j=0;j<3;j++)

{

for(k=0;k<3-j;k++)

{

if(a[i][k]>a[i][k+1])

{

t=a[i][k];a[i][k]=a[i][k+1];a[i][k+1]=t;

}

}

}

}

printf("行排序:\n");

for (i = 0; i < 5; i++)

{

for (j = 0; j <4; j++)

{

printf("%4d",a[i][j]);

}

printf("\n");

}

for(i=0;i<4;i++)//对列排列

{

for(j=0;j<4;j++)

{

for(p=0;p<4-j;p++)

{

if(a[p][i]>a[p+1][i])

{

t=a[p][i];a[p][i]=a[p+1][i];a[p+1][i]=t;

}

}

}

}

printf("列排序:\n");

for(i = 0; i < 5; i++) //打印二维数组排序的最终结果

{

for (j = 0; j <4; j++)

{

printf("%4d",a[i][j]);

}

printf("\n");

}

return 0;

}

只要我们的一维数组排序可以熟练运用,二位排序就很好理解了,另外值得注意的是一定要用两次循环来保持行/列不变哦!

以上是我的代码,希望对c语言小白有所帮助,如果代码有用的话,点个关注支持一下吧!

标签: #数组排序c语言数组