定义string类型的name,num和对应成绩的最大最小就可以了
题目给出的范围在0-100,因此将max_sco定义为-1,这样方便与第一个输入的成绩进行比较,第一个输入的成绩一定比-1大,然后后面输入的成绩再与第一个输入的成绩进行比较。
需要注意的是不能使用if..else if,也不能使用continue,因为输入的成绩需要同时与最大和最小进行比较,比如如果只输入一个成绩为60的学生,按理来说输出的最高成绩和最低成绩都应该是这个学生,但是由于使用了else if或者continue,最高成绩和最低成绩就会有一个不进行比较(这里if里面比较的是最低成绩),所以执行完if后,else if就不会执行了,最大成绩就还会是-1.
# include <iostream>
# include <iomanip>
using namespace std;
int main()
{
string min_name, min_num;
string max_name, max_num, name, num;
int max_sco = -1;
int min_sco = 101;
int sco;
int n;
cin >> n;
for (int i = 0; i < n; i++)
{
cin >> name >> num >> sco;
if (sco < min_sco)
{
min_name = name;
min_sco = sco;
min_num = num;
//continue;
}
if (sco > max_sco)
{
max_sco = sco;
max_name = name;
max_num = num;
//continue;
}
}
cout << max_name << " " << max_num << endl;
cout << min_name << " " << min_num << endl;
return 0;
}