输出最高分数的学生姓名 (两种写法-结构体&map)
来源:华佗健康网
题意描述:给学生的成绩和学生的姓名,输出成绩最高的学生名字
解题思路:
AC1 我用的结构体,存学生成绩和姓名,对比成绩,再存成绩高的学生名字,输出即可
AC2 用map存学生姓名和成绩,然后比较成绩,把成绩高记录,并把相对应的学生名字存入新的字符串 输出最高分的学生姓名即可
AC1:
#include<bits/stdc++.h>
using namespace std;
typedef struct student
{
char name[50];
int grade;
}STUDENT;
int main(void)
{
STUDENT stu,first;
int n,i,grade;
cin>>n;
first.grade = -1;
for(i=0;i<n;i++)
{
cin>>stu.grade>>stu.name;
if(stu.grade>first.grade)
first=stu;
}
cout<<first.name<<endl;
return 0;
}
AC2:
#include<stdio.h>
#include<map>
#include<iostream>
using namespace std;
int main(void)
{
map<string,int>x;
int n,m,max=-99;
char a[110];
scanf("%d",&n);
string s;
for(int i=1;i<=n;i++)
{
cin>>m>>a;
x[a]=m;
if(x[a]>max)
{
max=x[a];
s=a;
}
}
cout<<s<<endl;
return 0;
}
因篇幅问题不能全部显示,请点此查看更多更全内容