Acgo题库题解(别问,问就是被老师逼的)

一、原题:A614.学生信息查询

题目描述

现给出n个学生的信息,包括学生姓名,学号,语文成绩,数学成绩。
之后会有m次查询,查询有两种问题
第一种:name x ,查询名字为x的学生的语文和数学成绩
第二种:number y,查询学号为y的学生的平均分,保留小数点后两位

输入格式

第一行n,m
接下来n行,每行依次是姓名,学号,语文成绩,数学成绩
再接下来m行查询条件。

输出格式

根据查询条件输出相应内容

输入输出样例

二、分析

本题主要考察结构体的使用,先定义结构体并定义每个结构体列表的各个数据,输入之后用按照要查询的内容进行查询并输入结果就可了

三、代码讲解

1、结构体的定义:用struct关键字定义一个名为"student"的结构体,并在内部定义学生姓名、学号、语文、数学成绩和sum(平均分)。创建一个student类型的s数组。

2、结构体的输入:定义n和m表示输入n个学生信息和m个要查询的信息,输入n个学生信息并用student类型的数组s存起来。用s数组中的sum储存平均分。

3、遍历查询条件:使用for循环遍历查询的条件,string一个临时变量temp用来存储前面输入的“name”或“number”(即查询的类型)。如果要查询的是姓名,那么就再string一个na用来存储要查询的名字,输入后将它在s数组中遍历,如果找到对应的名字就输入该名字所对应的语文和数学成绩。

4、遍历查询条件:否则如果输入的查询类型为数字的话,就新建一个int类型的变量num用来储存要查询的学号并在s数组里遍历,如果找到相对应的学号,就输出他对应的语文数学的平均分。

(注:平均分有可能有小数,注意sum在定义的时候是float或double类型,且注意题目要求保留几位小数,保留小数可以用cout<<fixed<<setprecision()也可以用printf("%.2f"))

就应付到这里吧,拜拜!(后会无期)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值
>