2254 - b1003

通过次数

0

提交次数

0

时间限制 : 1 秒 内存限制 : 128 MB

使用结构体解决下面问题:输入两个学生的学号、姓名、成绩,输出成绩最高的同学的学号、姓名和成绩。

输入n代表n个学生(学生的姓名不超过200个字符,学号和成绩不大于100)。

数据之间用空格隔开;

题目输入


题目输出

输入/输出样例

输入格式

5
1 寒冰射手 38
2 蛮王 20
3 德玛西亚 59
4 光辉女郎 88
5 韦小宝 100

输出格式

5 韦小宝 100

C语言解答

#include<stdio.h>
struct stu1
{
    int num;
    char a[100];
    double score;

}s[100];
int main()
{
    int n,i,flag=0;
    double max;
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
        scanf("%d%s%lf",&s[i].num,s[i].a,&s[i].score);
    }

    max=s[0].score;
    for(i=1;i<n;i++)
    {
        if(s[i].score>max)
            {max=s[i].score;
            flag=i;
            }
    }
    if(flag)
    printf("%d %s %.0f\n",s[flag].num,s[flag].a,s[flag].score);
    else printf("%d %s %.0f\n",s[0].num,s[0].a,s[0].score);
}

C++解答

#include<iostream>
#include<cstdio>
#include<iostream>
#include<cmath>

using namespace std;

int main(){
    int num,score,n;
    string name;
    cin>>n;
    cin>>num>>name>>score;
    for(int i=0;i<n-1;i++){
        int maxscore,x;
        string str;
        cin>>x>>str>>maxscore;
        if(maxscore>score){
            num = x;
            name = str;
            score = maxscore;
        }
        //cout<<i<<endl;
    }
    cout<<num<<' '<<name<<' '<<score<<endl;
    return 0;
}