#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
这样,就用上指针了。嘿嘿。
能简就简,为啥非要用指针呢
不知道你这个问题是否已经解决, 如果还没有解决的话: