编程:数组存储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;
}