要求
从键盘输入学生人数n;
从键盘输入所有学生的学号和成绩分别存入数组num和score;
采用函数调用的方式计算最高分及其对应的学生学号。
一:使用全局变量
#include<stdio.h>
#define N 100
int temp,n;
int num[N];
int score[N];
int Max();
int main()
{
int i;
printf("请输入学生人数n:\n");
scanf("%d",&n);
printf("请输入学生的学号和成绩:\n");
for(i=0;i<n;i++)
{
scanf("%d%d",&num[i],&score[i]);
}
Max();
printf("最高分及其对应的学号:\n");
printf("%d %d\n",score[temp],num[temp]);
return 0;
}
int Max()
{
int i;
int maxnum=num[0],maxscore=score[0];
temp=0;
for(i=1;i<n;i++)
{
if(score[i]>maxscore)
{
maxscore=score[i];
maxnum=num[i];
temp=i;
}
}
return temp;
}
测试结果如下:
二:
#include<stdio.h>
#define N 100
int Max(int score[],int n);
int main()
{
int i,n,max;
int num[N],score[N];
printf("请输入学生人数n:\n");
scanf("%d",&n);
printf("请输入学生的学号和成绩:\n");
for(i=0;i<n;i++)
{
scanf("%d%d",&num[i],&score[i]);
}
max=Max(score,n);
printf("最高分及其对应的学号:\n");
printf("%d %d\n",score[max],num[max]);
return 0;
}
int Max(int score[],int n)
{
int i;
int max;
int maxscore;
maxscore=score[0];
max=0;
for(i=1;i<n;i++)
{
if(score[i]>maxscore)
{
maxscore=score[i];
max=i;
}
}
return max;
}
测试如下: