成绩的最高分问题

试题描述
编写函数ReadScore()和FindMax(),输入某班学生某门课的成绩和学号(最多不超过40人),当输入为负值时,表示输入结束,用函数编程通过返回数组中最大元素的下标,查找并输出成绩的最高分及其对应的学生学号。
提示:为了简化问题,学号可以用long类型存储。
输入
输入若干行。每行均有两个整数,两项之间用一个空格隔开,分别代表某学生的成绩和学号。最后一行输入两个负数,表示输入结束。
输出
输出最高成绩和该学生的学号,两项之间用一个空格隔开。
输入示例
89 15011101
87 15011102
100 15011103
76 15011104
-1 -1
输出示例
100 15011103
数据范围
输入和输出均为long范围的整数

#include <stdio.h>
int FindMax(int s[][2],int n)
{
	int max,i,h=0;
	max=s[0][0];
	for(i=1;i<n;i++)
	{
		if(s[i][0]>max)
		{
			max=s[i][0];
			h=i;
		}
	}
	return h;
}
void main()
{
int z=0,s[40][2],n=0,i,j,l;
long x;
for(i=0;;i++)
{
	for(j=0;j<2;j++)
	{
		scanf("%ld",&x);
        if(x>=0)
		{
          s[i][j]=x;
          n++;
		}
        else
		{
			z=1;
            break;
		}
	}
    if(z==1)
    break;
}
l=FindMax(s,n/2);
printf("%ld %ld",s[l][0],s[l][1]);
}

猜你喜欢

转载自blog.csdn.net/Lhw_666/article/details/91415024