一个小组有4个学生,每个学生有3门课程:语文、数学、英语的成绩(0~100的整数)。使用4行3列的二维数组存储这些成绩。计算每个学生三门课程的平均成绩并输出(精确到小数点后2位)。要求使用指针进行实现。
时间: 2024-02-22 19:55:34 浏览: 18
好的,我来帮你解决这个问题。以下是实现代码:
```c++
#include <iostream>
#include <iomanip>
using namespace std;
const int ROW = 4;
const int COL = 3;
void calcAverage(int (*p)[COL], int size);
int main()
{
int scores[ROW][COL] = {
{80, 75, 90},
{85, 90, 78},
{92, 88, 82},
{87, 76, 90}
};
calcAverage(scores, ROW);
return 0;
}
void calcAverage(int (*p)[COL], int size)
{
double sum;
for (int i = 0; i < size; i++)
{
sum = 0;
for (int j = 0; j < COL; j++)
{
sum += *(*(p + i) + j);
}
cout << "学生" << i + 1 << "的平均成绩为:" << fixed << setprecision(2) << sum / COL << endl;
}
}
```
代码中,我们定义了一个 `calcAverage()` 函数,用于计算每个学生三门课程的平均成绩并输出。该函数使用了一个指向二维数组的指针 `p`,并通过指针遍历数组元素来进行计算。
在 `main()` 函数中,我们定义了一个 4 行 3 列的二维数组 `scores`,并将其作为参数传递给 `calcAverage()` 函数进行计算。
注意,在输出时我们使用了 `fixed` 和 `setprecision()` 函数设置输出格式,以保留小数点后两位。
希望能帮到你!