1147:最高分数的学生姓名
时间限制: 1000 ms 内存限制: 65536 KB
【题目描述】
输入学生的人数,然后再输入每位学生的分数和姓名,求获得最高分数的学生的姓名。
【输入】
第一行输入一个正整数N(N <= 100),表示学生人数。接着输入N行,每行格式如下:
分数 姓名
分数是一个非负整数,且小于等于100;
姓名为一个连续的字符串,中间没有空格,长度不超过20。
数据保证最高分只有一位同学。
【输出】
获得最高分数同学的姓名。
【输入样例】
5 87 lilei 99 hanmeimei 97 lily 96 lucy 77 jim
【输出样例】
hanmeimei
代码新手,如有任何不妥劳烦各位指正!
#include<string>
#include<iostream>
using namespace std;
int high(const int* p,int len);
int main(){
int n;
cin>>n;
int scores[n];
string names[n];
for(int i=0;i<n;i++){
cin>>scores[i]>>names[i];
}
int* p = scores;
int num = high(p,n);
cout<<names[num];
return 0;
}
/**
之前我一直以为如果指针p指向数组,那么用p代表数组名读取变量的时候,下标是从1开始的
直到今天我发现了惊人的真相
QAQ*/
int high(const int* p,int len){
int highest = p[0];
int number = 0;
for(int i=0;i<len;i++){
if(p[i] > highest){
highest = p[i];
number = i;
}
}
return number;
}