02:输出最高分数的学生姓名

描述

输入学生的人数,然后再输入每位学生的分数和姓名,求获得最高分数的学生的姓名。

输入
第一行输入一个正整数N(N <= 100),表示学生人数。接着输入N行,每行格式如下:
分数 姓名
分数是一个非负整数,且小于等于100;
姓名为一个连续的字符串,中间没有空格,长度不超过20。
数据保证最高分只有一位同学。
输出
获得最高分数同学的姓名。
样例输入
5
87 lilei
99 hanmeimei
97 lily
96 lucy
77 jim
样例输出
hanmeimei

  第一次程序;

#include<cstdio>
int b,c,x,f=1,d;
char a[21],y[21];
int main()
{
	scanf("%d",&b);
	for(int i=1;i<=b;i++)
	{
		scanf("%d",&c);
		if(x<=c)                 错误处
		{
			f=0;
			d=1;
			x=c;
			scanf(" %c",&y[d]);
			while(y[d]!='\n')
			{
				f++;	
				d++;
				scanf("%c",&y[d]);
			}	
		}
	}
	for(int i=1;i<=f;i++)
		printf("%c",y[i]);
}
错在---如果x>c,则不进入输入名字的循环

第二次程序;

#include<cstdio>
int b,c,x,f=1,d;
char a[21],y[21];
int main()
{
	scanf("%d",&b);
	for(int i=1;i<=b;i++)
	{
		scanf("%d",&c);
		if(x>c)                      修改处
		{
			scanf(" %c",&a[d]);
			while(a[d]!='\n')
			{
				d++;
				scanf("%c",&a[d]);
			}	
		}
		if(x<=c)
		{
			f=0;
			d=1;
			x=c;
			scanf(" %c",&y[d]);
			while(y[d]!='\n')
			{
				f++;	
				d++;
				scanf("%c",&y[d]);
			}	
		}
	}
	for(int i=1;i<=f;i++)
		printf("%c",y[i]);
}
这就改正了第一次的问题。


  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值