okk,家人们,今天姗姗来迟
今天就给大家讲一到pta的题目吧,虽然知道没人看。。害,悲哀
ok上题目
题目的意思很简单,就是第一行给出学生的数目,这里是五个学生
然后下面分别给出五个学生的学号,姓名,还有三门成绩,让我们算出最高分的同学的姓名学号和总分,啊不对,是打印出来
好了,题目的意思咱已经懂了
接下来咋做呢
好问题
你们没发现就是
每个同学的信息很对称吗
都是学号,姓名,三门成绩
所有人都有这些内容
那么我们可以设定一个结构
包括这三个内容
这样每个人拥有一个结构,一个结构里面的信息他都有
这样就可以不用再重复地处理每一个信息了
就是类似于打包处理
但是最后不是要求最高的总分吗
那不是还得比较?
so我们还得算出每个人的总分
于是~~
typedef struct{
char xh[6];
char xm[40];
int a;
int b;
int c;
int t;
}student;
这个就是我写的结构
接下来写主函数部分
int n;
scanf("%d",&n);
student f[10];
int max_index=0;
int max=-1;
不是有五个学生嘛,当然我知道这个可以用户自己输入,我就是打个比方你好理解嘛
那我们就可以把每个人拥有的那个结构
当做这个人
然后总共五个人,那不就可以用数组嘛,更好弄。最高分肯定不会是0分以下吧,那我就设定最高分为负一,这样就会不断被更新。然后最大值的指数就是第一个数组的值。因为这个时候还没有扫描数组嘛,所以不知道第一个值是多少,所以才设定最高分是负一。
for(int i=0;i<n;i++){
scanf("%s %s %d %d %d",f[i].xh,f[i].xm,&f[i].a,&f[i].b,&f[i].c);
f[i].t=f[i].a+f[i].b+f[i].c;
if(f[i].t>max){
max=f[i].t;
max_index=i;
}
}
然后呢,我们就进行了扫描的任务,每次扫描学生的信息,我们就可以顺便算出他的总分便于比较大小。还可以顺便把大小比较了
这样子所有都扫描完了,也比较完了
printf("%s %s %d\n",f[max_index].xm,f[max_index].xh,max);
最后呢,就是一个打印的操作
这里有一个细节,就是输入和输出的姓名,学号位置不一样,一定要小心。另外字符在扫描的时候和数字不一样,也要注意。细节细节细节!
总得我汇总一下吧
截屏的有点丑
大家凑合看吧
然后我有点懒,没有注释
但是我都给你们讲清楚了哈
不能蛐蛐我了哈
今天的分享就到这里啦
拜拜!!!!