这道题用python写到没有什么难度
用c++写就遇到困难了,这算一道考察结构体的题目吧,以后遇到一个主题有多个属性的时候就可以考虑使用结构体
就是在给结构体赋值的时候只能是静态的结构体数组,但好像动态的pat里也能跑通,到编辑器里就报错了,如下:
int n;
cin>>n;
struct student stu[n];
正确的做法应该是先将数组长度列得足够大,然后再用for循环分配
struct student stu[1000];
for (i = 0;i < n;i++) {
cin >> stu[i].id >> stu[i].name >> stu[i].score;
}
ok!完整代码:
#include <iostream>
using namespace std;
struct student
{
char name[20];
char id[20];
int score;
};
int main()
{
int n;
cin >> n;
struct student stu[1000];
int i, max, min;
for (i = 0;i < n;i++) {
cin >> stu[i].id >> stu[i].name >> stu[i].score;
}
max = stu[0].score;
min = stu[0].score;
for (i = 0;i < n;i++) {
if (stu[i].score > max) {
max = stu[i].score;
}
if (stu[i].score < min) {
min = stu[i].score;
}
}
for (i = 0;i < n;i++) {
if (stu[i].score == max) {
cout << stu[i].name << " " << stu[i].id << endl;
}
}
for (i = 0;i < n;i++) {
if (stu[i].score == min) {
cout << stu[i].name << " " << stu[i].id << endl;
}
}
return 0;
}
以后每个{}括号之间分的距离尽量远一点,不然多一个少一个都察觉不出来