6-2 有3个学生,每个学生有4门课程的成绩,根据学号求学生全部成绩 分数 5 作者 王秀秀 单位 山东交通学院 有3个学生,每个学生有4门课程的成绩。要求用户输入学生序号以后,能输出该学生的全部成绩。 用指针函数来实现,学号分别为0、1、2 ,成绩则为{ 60,70,80,90 }, { 56,89,67,88 }, { 34,78,90,66 }。如果输入0,就是要求学号为0的学生的成绩,这样应该把数组{60,70,80,90}的首元素地址返回。 函数接口定义: float *search(float(*pointer)[4], int n); 其中 pointer 和 n 都是用户传入的参数。 pointer 指向3行4列数组的首行,n为学号。 函数返回第n个学生所在行的首元素地址。
时间: 2024-04-05 08:30:26 浏览: 22
好的,我知道了你的问题。以下是解答:
```c++
#include <iostream>
using namespace std;
float *search(float (*pointer)[4], int n);
int main() {
float score[3][4] = {{60, 70, 80, 90}, {56, 89, 67, 88}, {34, 78, 90, 66}};
int n;
cout << "请输入学生序号(0-2): ";
cin >> n;
float *p = search(score, n);
cout << "该学生的成绩为:";
for (int i = 0; i < 4; i++) {
cout << *(p + i) << " ";
}
return 0;
}
float *search(float (*pointer)[4], int n) {
return *(pointer + n);
}
```
运行结果:
```
请输入学生序号(0-2): 0
该学生的成绩为:60 70 80 90
```
解析:这是一道指针函数的题目。在主函数中定义了一个二维数组score存放学生成绩,然后输入学生序号n。接着调用search函数,将score数组的首行地址传入,并且把学生序号n传入。search函数根据n的值,返回第n行的首元素地址。最后在主函数中输出该学生的成绩。
注意:在search函数中,指针指向的是一个一维数组,因此返回的是一个指针,而不是一个数组。在主函数中,要遍历指针指向的一维数组,输出学生的成绩。