/*
第二题:输入一个四行五列的矩阵,找出每列最大的两个数,如:
输入: 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;
}
05年华中科大机试第二题(输入一个四行五列的矩阵,找出每列最大的两个数)
最新推荐文章于 2024-01-15 11:56:22 发布