程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 九度OJ 題目1200:最大的兩個數

九度OJ 題目1200:最大的兩個數

編輯:C++入門知識

  題目1200:最大的兩個數時間限制:1 秒 內存限制:32 兆 特殊判題:否 提交:1225 解決:296   題目描述:     輸入一個四行五列的矩陣,找出每列最大的兩個數。   輸入:     輸入第一行包括一個整數n(1<=n<=1000),接下來的四行每行包括五個整數。代表一個四行五列的矩陣,矩陣元素全部是整數。   輸出:     可能有多組測試數據,對於每組數據,按照樣例輸出的格式將每列最大的兩個數輸出,如果最大的兩個數中的一個數在這一列中有多個相同的值,則行值取行值小的那一個。     輸出時要保留原矩陣的行列順序,即在原矩陣中行值小的,在輸出矩陣中的行值依然小。   樣例輸入: 1 1  2   4  9  8 -1  4  9  8  8 12  9  8  7  0 7   8  9  7  0樣例輸出: 12 9 9 9 8  7 8 9 8 8 提示: 每個數字後面都要輸出一個空格   來源: 2005年華中科技大學計算機保研機試真題       [cpp]  /*********************************  *   日期:2013-2-20  *   作者:SJF0115  *   題號: 九度OJ 題目1200:最大的兩個數  *   來源:http://ac.jobdu.com/problem.php?pid=1200  *   結果:AC  *   來源:2005年華中科技大學計算機保研機試真題  *   總結:注意:每個數字後面都要輸出一個空格  **********************************/   #include<stdio.h>    #include<stdlib.h>    #include<string.h>    #include <limits.h>       typedef struct Matrixs{       int value;//數值        int row;//行數    }Matrixs;      int main()   {       int i,j,n,k,first;       Matrixs Matrix[4][5];       Matrixs Matrix2[2][5];       while(scanf("%d",&n) != EOF){           for(k = 0;k < n;k++){               //輸入數據                for(i = 0;i < 4;i ++){                   for(j = 0;j < 5;j++){                       scanf("%d",&Matrix[i][j].value);                       Matrix[i][j].row = i;                   }               }               //最大的兩個數放在前兩位                Matrixs temp;               for(j = 0;j < 5;j++){                   //初始化最小值                    Matrix2[0][j].value = INT_MIN;                   Matrix2[1][j].value = INT_MIN;                   //每列最大的兩個數                    for(i = 0;i < 4;i++){                       if(Matrix[i][j].value > Matrix2[0][j].value){                           Matrix2[0][j] = Matrix[i][j];                       }                   }                   for(i = 0;i < 4;i++){                       if(Matrix2[0][j].row != Matrix[i][j].row && Matrix[i][j].value > Matrix2[1][j].value){                           Matrix2[1][j] = Matrix[i][j];                       }                   }               }               //保留原矩陣的行列順序                for(j = 0;j < 5;j++){                   if(Matrix2[0][j].row > Matrix2[1][j].row){                       temp = Matrix2[0][j];                       Matrix2[0][j] = Matrix2[1][j];                       Matrix2[1][j] = temp;                   }               }               //輸出                for(i = 0;i < 2;i++){                   for(j = 0;j < 5;j++){                       printf("%d ",Matrix2[i][j].value);                   }                   printf("\n");               }           }       }       return 0;   }     /********************************* *   日期:2013-2-20 *   作者:SJF0115 *   題號: 九度OJ 題目1200:最大的兩個數 *   來源:http://ac.jobdu.com/problem.php?pid=1200 *   結果:AC *   來源:2005年華中科技大學計算機保研機試真題 *   總結:注意:每個數字後面都要輸出一個空格 **********************************/ #include<stdio.h> #include<stdlib.h> #include<string.h> #include <limits.h>   typedef struct Matrixs{ int value;//數值 int row;//行數 }Matrixs;   int main() { int i,j,n,k,first; Matrixs Matrix[4][5]; Matrixs Matrix2[2][5]; while(scanf("%d",&n) != EOF){ for(k = 0;k < n;k++){ //輸入數據 for(i = 0;i < 4;i ++){ for(j = 0;j < 5;j++){ scanf("%d",&Matrix[i][j].value); Matrix[i][j].row = i; } } //最大的兩個數放在前兩位 Matrixs temp; for(j = 0;j < 5;j++){ //初始化最小值 Matrix2[0][j].value = INT_MIN; Matrix2[1][j].value = INT_MIN; //每列最大的兩個數 for(i = 0;i < 4;i++){ if(Matrix[i][j].value > Matrix2[0][j].value){ Matrix2[0][j] = Matrix[i][j]; } } for(i = 0;i < 4;i++){ if(Matrix2[0][j].row != Matrix[i][j].row && Matrix[i][j].value > Matrix2[1][j].value){ Matrix2[1][j] = Matrix[i][j]; } } } //保留原矩陣的行列順序 for(j = 0;j < 5;j++){ if(Matrix2[0][j].row > Matrix2[1][j].row){ temp = Matrix2[0][j]; Matrix2[0][j] = Matrix2[1][j]; Matrix2[1][j] = temp; } www.2cto.com } //輸出 for(i = 0;i < 2;i++){ for(j = 0;j < 5;j++){ printf("%d ",Matrix2[i][j].value); } printf("\n"); } } } return 0; }分享到: 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved