编程:数组存储3名同学5门课程成绩 输出最好成绩及所在的行和列 要求:将输入、查找和打印的功能编写成函数 并将二维数组通过指针参数传递的方式由主函数传递到子函数中
时间: 2023-11-28 13:47:17 浏览: 408
数组应用举例-vpp软件架构和实现介绍(vpp design and implementation overview)
以下是一个示例代码,实现了输入、查找和打印的功能,同时将二维数组通过指针参数传递的方式由主函数传递到子函数中:
```c++
#include <iostream>
using namespace std;
const int ROWS = 3;
const int COLS = 5;
void inputGrades(int (*grades)[COLS]) {
cout << "请输入三名同学的五门成绩:\n";
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
cin >> grades[i][j];
}
}
}
void findBestGrade(int (*grades)[COLS], int& bestGrade, int& row, int& col) {
bestGrade = grades[0][0];
row = 0;
col = 0;
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
if (grades[i][j] > bestGrade) {
bestGrade = grades[i][j];
row = i;
col = j;
}
}
}
}
void printBestGrade(int (*grades)[COLS], int bestGrade, int row, int col) {
cout << "最好成绩为:" << bestGrade << endl;
cout << "所在行:" << row << ",所在列:" << col << endl;
cout << "成绩表格如下:" << endl;
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
cout << grades[i][j] << " ";
}
cout << endl;
}
}
int main() {
int grades[ROWS][COLS];
inputGrades(grades);
int bestGrade, row, col;
findBestGrade(grades, bestGrade, row, col);
printBestGrade(grades, bestGrade, row, col);
return 0;
}
```
在主函数中,我们定义了一个二维数组 `grades`,并将其传递给三个子函数 `inputGrades`、`findBestGrade` 和 `printBestGrade`。这三个函数都通过指针参数来访问 `grades` 数组,并对其进行操作。
`inputGrades` 函数用于输入成绩,它通过两个嵌套的循环来遍历整个二维数组,向用户依次询问每个元素的值,并将其存储到 `grades` 数组中。
`findBestGrade` 函数用于查找最好的成绩,它通过两个嵌套的循环遍历整个二维数组,找到最大的元素,并记录下它的值、行号和列号。这些信息都存储在传入的三个引用参数 `bestGrade`、`row` 和 `col` 中。
`printBestGrade` 函数用于打印最好的成绩及其所在的行和列,以及整个成绩表格。它通过遍历整个二维数组来输出每个元素的值,并在输出最好成绩时将其特别标注出来。
最后,在主函数中,我们先调用 `inputGrades` 函数来输入成绩,然后调用 `findBestGrade` 函数来查找最好的成绩,最后调用 `printBestGrade` 函数来打印结果。
阅读全文