最大的两位数

题目描述:输入一个整数矩阵,求每一列最大的两位数。若有相同的数值,取行值小的数。

输出最大的两位数(按格式输出。

解题思路:另开一个d[2*5]数组存储数据

从上到下遍历原矩阵,每次将当前数字与d数组中对应列的两个元素比较,保存最大的两个数。

而且为了使得输出时是按照保存的顺序,每次新入的元素将在d[1][j]处,将原有元素网上挪

有一个问题:我调代码的时候总是超时,后来才发觉是漏了写EOF。。。。。。。。。。。。。。太傻了啊天

 1 #include<stdio.h>
 2 #include<limits.h>
 3 int main()
 4 {
 5     int a,b,c[4][5],d[2][5];
 6     while(scanf("%d%d%d%d%d",&c[0][0],&c[0][1],&c[0][2],&c[0][3],&c[0][4])!=EOF)
 7     {
 8         int i,j;
 9         for(i=1; i<4; i++)
10         {
11             for(j=0; j<5; j++)
12                 scanf("%d",&c[i][j]);
13         }
14         for(i=0; i<2; i++)
15         {
16             for(j=0; j<5; j++)
17                 d[i][j]=INT_MIN;//最小化
18         }
19         for(i=0; i<4; i++)
20         {
21             for(j=0; j<5; j++)
22             {
23                 if(c[i][j]>d[0][j]||c[i][j]>d[1][j])
24                 {
25                     if(d[0][j]>d[1][j]) d[1][j]=c[i][j];
26                     else
27                     {
28                         d[0][j]=d[1][j];
29                         d[1][j]=c[i][j];
30                     }
31                 }
32             }
33         }
34         for(i=0; i<=1; i++)
35         {
36             for(j=0; j<5; j++)
37                 if (j!=4)printf("%d ",d[i][j]);
38                 else printf("%d\n",d[i][j]);
39         }
40     }
41     return 0;
42 }

 

posted @ 2018-02-06 00:32  土星狗蛋  阅读(396)  评论(0)    收藏  举报