在哪里可以用指针呢?


#include
#include
using namespace std;

//4、一个班上有30名学生,每个学生的数据作为一个记录,每个记录包括学号、姓名、三门课程的成绩和三门课程平均成绩。
//从键盘输入学生的学号、姓名及三门课的成绩。要求打印三门课程平均成绩最高分的学生记录(要求使用指针)。
struct student {
    int num;
    string name;
    float score[3];
    float average;
};
//创建数组存放五名学生
void adname(struct student arr[], int len) {
    string nameseed = "ABCDE";
    for (int i = 0; i < 5; i++) {
        arr[i].name = "student_";
        arr[i].name += nameseed[i];
    }
}

int main() {
    struct student arr[5];
    adname(arr, 5);
    int x = 0;
    float max = 0;
    for (int j = 0; j < 5; j++) {
        cout << "请输入学生" << arr[j].name << "的三门课程的成绩:" << endl; 
        int n1, n2, n3;
        cin >> n1 >> n2 >> n3;
        arr[j].average = (n1 + n2 + n3) / 3;
        if (arr[j].average > max) {
            max = arr[j].average;
            x = j;
        }
    }
    cout << "平均分最高的为学生" << x+1 << "平均分为" << max << endl;
    return 0;
}

该回答引用GPTᴼᴾᴱᴺᴬᴵ
在这个C++代码中,有一个结构体(struct student)定义了学生的属性,包括学号、姓名、三门课程的成绩和三门课程平均成绩。在主函数中,使用了指针(arr指向student数组)来存储学生的信息,通过指针可以修改数组元素的值,比如输入学生的学号、姓名及三门课的成绩,计算三门课程平均成绩,并将平均成绩最高的学生记录下来。
·
具体来说,在adname函数中,使用指针arr指向student数组,循环为每个学生设置姓名。在主函数中,循环输入每个学生的三门课成绩,并计算平均成绩。使用指针x和max记录平均成绩最高的学生的下标和平均成绩,最后打印出平均成绩最高的学生记录。
·
因此,在这个代码中,指针的使用包括指向student数组和指向变量x和max,可以用指针来修改和读取它们的值。

arr[j].name
(&arr)[j]->name
这样,就用上指针了。嘿嘿。

能简就简,为啥非要用指针呢

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^