福千欣隆网站建设公司 概况,百度下载并安装,浙江台州网站制作,网站建设与网络编辑综合实训课程指导手册题目
读入 n#xff08;0#xff09;名学生的姓名、学号、成绩#xff0c;分别输出成绩最高和成绩最低学生的姓名和学号。
输入格式#xff1a;
每个测试输入包含 1 个测试用例#xff0c;格式为 第 1 行#xff1a;正整数 n 第 2 行#xff1a;第 1 个学生的姓名…题目
读入 n0名学生的姓名、学号、成绩分别输出成绩最高和成绩最低学生的姓名和学号。
输入格式
每个测试输入包含 1 个测试用例格式为 第 1 行正整数 n 第 2 行第 1 个学生的姓名 学号 成绩 第 3 行第 2 个学生的姓名 学号 成绩 … … … 第 n1 行第 n 个学生的姓名 学号 成绩 其中姓名和学号均为不超过 10 个字符的字符串成绩为 0 到 100 之间的一个整数这里保证在一组测试用例中没有两个学生的成绩是相同的。
输出格式
对每个测试用例输出 2 行第 1 行是成绩最高学生的姓名和学号第 2 行是成绩最低学生的姓名和学号字符串间有 1 空格。
输入样例 3 Joe Math990112 89 Mike CS991301 100 Mary EE990830 95 输出样例 Mike CS991301 Joe Math990112 分析
提供3种方法
首先用3个数组分别存储姓名学号和成绩下标一一对应。然后用两个变量来存储最高成绩与最低成绩。最后用这两个变量去找对应的姓名与学号。注意输出格式。首先用3个数组分别存储姓名学号和成绩下标一一对应。然后对成绩进行排序同时交换对应的姓名和学号的顺序。最后输出姓名和学号数组指定变量即可。首先用3个变量来接收姓名学号和成绩。然后声明6个变量分别表示姓名学号最高成绩和姓名学号最低成绩把每一次读入的n个学生成绩拿来比对。
AC代码
#includeiostream
#includestring
using namespace std;
int main()
{//方法1/*int i,j,n,max,min;cinn;string name[n],sno[n];int grade[n];for(i0;in;i){cinname[i]sno[i]grade[i];}maxgrade[0];mingrade[0];for(i1;in;i){if(maxgrade[i])maxgrade[i];if(mingrade[i])mingrade[i];}for(i0;in;i){if(maxgrade[i]){coutname[i] sno[i];coutendl;} }for(i0;in;i){if(mingrade[i])coutname[i] sno[i];}*///方法2/*for(i0;in;i)for(ji1;jn;j){if(grade[i]grade[j]){int tempgrade[i];grade[i]grade[j];grade[j]temp;string temp2name[i],temp3sno[i];name[i]name[j];sno[i]sno[j];name[j]temp2;sno[j]temp3;} }coutname[0] sno[0]endl;coutname[n-1] sno[n-1];*/ //方法3int i,j,n,max0,min100;cinn;string max_name,min_name,max_sno,min_sno,name,sno;int grade;for(i0;in;i){cinnamesnograde;if(maxgrade){maxgrade;max_namename;max_snosno;}if(mingrade){mingrade;min_namename;min_snosno;}}coutmax_name max_snoendl;coutmin_name min_sno;return 0;
}比较
前两种方法思路比较清楚但需要开辟3个数组消耗内存较大第三种方法消耗内存不大但是只能得到最高成绩学生信息和最低成绩学生信息对于涉及整体学生的操作时无能为力。 更多题解 pat 乙级 题解汇总持续更新C