編程:數組存儲3名同學5門課程成績
輸出最好成績及所在的行和列
要求:將輸入、查找和打印的功能編寫成函數
并將二維數組通過指針參數傳遞的方式由主函數傳遞到子函數中
輸入格式:
每行輸入一個同學的5門課的成績,每個成績之間空一格,見輸入樣例
輸出格式:
輸出共3行:
第一行輸出,如:最高分是:97
第二行輸出最高分所在的行數,如:行數是:2
第二行輸出最高分所在的列數,如:列數是:3
輸入樣例:
在這里給出一組輸入。例如:
87 67 76 78 85
92 78 79 86 88
79 85 87 97 89
輸出樣例:
在這里給出相應的輸出。例如:
最高分是:97
行數是:2
列數是:3
#include <stdio.h>
// 二維數組傳參int a[3][5];
int max,x_index,y_index;// void scan(int (*a)[5]) { // int (*a)[num]數組指針 ;num不能省略
void scan(int a[][5]){ // 數組寫法 int a[][num] ;num不能省略for (int i = 0; i < 3; i++) {for (int j = 0; j < 5; j++) {scanf("%d", &a[i][j]);}}
}
void search(int (*a)[5]) {// for (int i = 0; i < 3; i++) {// for (int j = 0; j < 5; j++) {// printf("%d", a[i][j]);// }// printf("\n");// }max=a[0][0];for (int i = 0; i < 3; i++) {for (int j = 0; j < 5; j++) {if(a[i][j]>max) {max=a[i][j];x_index=i;y_index=j;}}}
}
void print(int max,int x_index,int y_index){printf("最高分是:%d\n",max);printf("行數是:%d\n",x_index);printf("列數是:%d\n",y_index);
}
int main() {scan(a); // 使用數組指針、二維數組,函數的調用寫法search(a);print(max,x_index,y_index);return 0;
}
?