05年华中科大机试第二题(输入一个四行五列的矩阵,找出每列最大的两个数)

来源:互联网 发布:禁止软件安装 编辑:程序博客网 时间:2024/06/05 05:04
 
/*第二题:输入一个四行五列的矩阵,找出每列最大的两个数,如:输入:  1 2 3 4 9                  -1 4 9 8 8        12 9 8 7 0           输出:12 9 9 8 9         7 8 9 7 0                 7 8 9 7 8*//*循环五次,每次对每一列进行快排(降序),最后将前两行的结果输出即可*//*程序:*************************爱X的味道*****************************/#include<stdio.h>#include<stdlib.h>int compare(const void *a,const void *b){return (*(int *)b - *(int *)a);}void SearchNumber(int array[][5]){int i,j,tmp[4];i=j=0;for(j=0;j<5;j++){for(i=0;i<4;i++)tmp[i]=array[i][j];      /*保存每一列元素*/qsort(tmp,4,sizeof(array[0][0]),compare);for(i=0;i<4;i++)array[i][j]=tmp[i];     /*将排好序的元素覆盖掉原位置*/}for(i=0;i<2;i++){for(j=0;j<5;j++)printf(" %d ",array[i][j]);printf("\n\n");}printf("\n\n");}int main(){int i,j,array[4][5];printf("请输入一个四行五列的矩阵!\n\n");for(i=0;i<4;i++)for(j=0;j<5;j++)scanf("%d",&array[i][j]);printf("输入完毕!\n\n");SearchNumber(array);return 0;}

原创粉丝点击