描述:读入n名学生的姓名、学号、成绩,分别输出成绩最高和成绩最低学生的姓名和学号
输入:每个测试输入包含1个测试用例,格式为
第1行:正整数n
第2行:第1个学生的姓名 学号 成绩
第3行:第2个学生的姓名 学号 成绩
... ... ...
第n+1行:第n个学生的姓名 学号 成绩
其中姓名和学号均为不超过10个字符的字符串,成绩为0到100之间的一个整数,这里保证在一组测试用例中没有两个学生的成绩是相同的。
输出:对每个测试用例输出2行,第1行是成绩最高学生的姓名和学号,第2行是成绩最低学生的姓名和学号,字符串间有1空格
input:3 Joe Math990112 89 Mike CS991301 100 Mary EE990830 95
output:Mike CS991301 Joe Math990112
分析:建立一个学生类,包含姓名,学号,成绩。主函数中用动态对象数组存数据。
1 #include<iostream>
2 #include<string>
3 using namespace std;
4
5 class student
6 {
7 public:
8 void input()
9 {
10 cin >> name >> number >> grade;
11 }
12 void output()
13 {
14 cout << name << " " << number << endl;
15 }
16 int getGrade()
17 {
18 return grade;
19 }
20 private:
21 string name;
22 string number;
23 int grade;
24 };
25
26 int main()
27 {
28 int n;
29 cin >> n;
30 student* stu = new student[n];//数组元素为对象本身,不是指针
31 for (int i = 0; i < n; i++)
32 stu[i].input();
33 int max=0, min=0; //标记最大和最小对象的序号
34 for (int i = 0; i < n; i++)
35 {
36 if (stu[i].getGrade()>stu[max].getGrade())//通过函数返回值比较大小
37 max = i;
38 if (stu[i].getGrade()<stu[min].getGrade())
39 min = i;
40 }
41 stu[max].output();
42 stu[min].output();
43 delete []stu;
44 system("pause");
45 return 0;
46 }
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有