对N行N列二维数组的每一行排序,偶数行(0当作偶数)由小到大排序,奇数行由大到小排序 |
您所在的位置:网站首页 › 二维数组每列排序一样吗 › 对N行N列二维数组的每一行排序,偶数行(0当作偶数)由小到大排序,奇数行由大到小排序 |
这种问题可以分行进行讨论,排序可以冒泡排序,选择排序或二分法排序都可以。程序如下: /***************************************************** 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 |