对N行N列二维数组的每一行排序,偶数行(0当作偶数)由小到大排序,奇数行由大到小排序

您所在的位置:网站首页 二维数组每列排序一样吗 对N行N列二维数组的每一行排序,偶数行(0当作偶数)由小到大排序,奇数行由大到小排序

对N行N列二维数组的每一行排序,偶数行(0当作偶数)由小到大排序,奇数行由大到小排序

2024-05-27 05:09| 来源: 网络整理| 查看: 265

这种问题可以分行进行讨论,排序可以冒泡排序,选择排序或二分法排序都可以。程序如下:

/***************************************************** copyright (C), 2014-2015, Lighting Studio. Co.,     Ltd.  File name: Author:fhb    Version:0.1    Date:  Description: Funcion List:  *****************************************************/ #include #include int main() { int i,j,k,tmp; int num[10][10]; int flag=0; srand(time(NULL)); //随机取100以内的值  for(i = 0;i < 10;i++) { for(j = 0;j < 10;j++) { num[i][j] = rand() % 100; printf("%3d",num[i][j]); } printf("\n"); } for(k = 0;k < 10;k++) { if(k % 2 == 0) { for(i = 0;i < 9;i++) { flag=0; for(j = 0;j < 9-i;j++) {            if(num[k][j]>num[k][j+1]) { tmp=num[k][j]; num[k][j]=num[k][j+1]; num[k][j+1]=tmp; flag=1; } } if(flag == 0) { break; } } } else { for(i = 0;i < 9;i++) { flag=0; for(j = 0;j < 9-i;j++) {            if(num[k][j] break; } } } }     printf("after sort the array are:\n"); for(i = 0;i < 10;i++) { for(j = 0;j < 10;j++) { printf("%3d",num[i][j]); } printf("\n"); }     return 0; }

对于以上程序,因为时间时刻不同,所以可以用时间取随机值,并且每次的取值不相同,这样可以避免自己输入或者程序输入浪费时间。

程序运行结果如下:



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3