標籤:執行個體 c 數組 練習
這次執行個體的要求是:
* 在n行n列的二維整數數組中,*
按照以下要求選出兩個數。
* 首先從每行中選出最大數,在從選出的n個最大數中選出最小數;*
* 其次,從每行選出最小數,再從選出的n個小數中選出最大數。*
下面就是My Code,在注釋中可以看到我的想法:
#include <stdio.h>/** * 執行個體要求: * 在n行n列的二維整數數組中, * 按照以下要求選出兩個數。 * 首先從每行中選出最大數,在從選出的n個最大數中選出最小數; * 其次,從每行選出最小數,再從選出的n個小數中選出最大數。 * */int main(void){ int order; printf("%s\n","Please enter the order of the matrix:"); scanf("%d",&order); printf("Please input the elements of the matrix,from a[0][0] to a[%d][%d]:\n",order-1,order-1); int matrix[order][order]; /** * 擷取使用者輸入,並填充到二維數組中 */ int colums,rows; for(rows = 0;rows < order;rows++){ for(colums = 0; colums < order;colums++){ scanf("%d",&matrix[rows][colums]); //這裡也可以這樣寫 //scanf("%d",matrix[rows]+colums); } } /** * 找到最大元素的最小元素 * */ //用於儲存最大元素中的最小元素 int minInMax = 0; for(rows = 0;rows < order;rows++){ //用於儲存行最大元素 int maxInLine = 0; for(colums = 0;colums < order;colums++){ if(matrix[rows][colums] > maxInLine) maxInLine = matrix[rows][colums]; } if(rows == 0){ //當擷取到第一行的最大元素時,直接賦值給最小元素 minInMax = maxInLine; }else{ if(minInMax > maxInLine) minInMax = maxInLine; } } printf("The minimum of maximum number is %d.\n",minInMax); /** * 找到最小元素的最大元素 * */ //用於儲存最小元素中的最大元素 int maxInMin = 0; for(rows = 0;rows < order;rows++){ //用於儲存行最小元素 int minInLine = matrix[rows][0]; for(colums = 0;colums < order;colums++){ if(matrix[rows][colums] < minInLine) minInLine = matrix[rows][colums]; } if(rows == 0){ //當擷取到第一行的最小元素時,直接賦值給最大元素 maxInMin = minInLine; }else{ if(maxInMin < minInLine) maxInMin = minInLine; } } printf("The maximum of minimum number is %d.\n",maxInMin); return 0;}
C二維數組練習