从键盘输入某班学生某门课程的成绩, (假设每班人数最多不超过40人),当输入成绩为负值时,表示输入结束 试编程计算其最高分。
问题求解方法分析:
计算最高分就是求最大值,可先假设第一个学生的成绩为当前最高分,其余学生的成绩依次与当前最高分比较。一旦发现高于当前最高分的学生成绩,则用该成绩修改当前最高分。如此一来,当全部的学生成绩都比较完后,最高分也就得到了
#include<stdio.h>
#define N 40
int readscore(int score[]);/*readcore()函数原型*/
int findmax(int score[],int n);/*findmax()函数原型*/
main()
{ int score[N],max,n;
n=readscore(score);/*调用函数readscore()输入成绩,返回学生人数*/
printf("总学生人数是:%d\n"),n;
max=findmax(score,n);/*调用函数findmax()计算最高分,返回最高分*/
printf("最高分是:%d\n",max);
return 0;
}
/*函数功能:输入学生某门课程的成绩,当输入成绩为负值时,结束输入,返回学生人数*/
int readscore(int score[])/*readscore()函数定义*/
{ int i=-1;/*i初始化为-1,循环体内增1后可保证数组下标从0开始*/
do{
i++;
printf("输入分数:");
scanf("%d",&score[i]);
} while(score[i]>=0);/*输入负值结束时结束输入*/
return i;/*返回学生人数*/
}
/*函数功能:计算最高分*/
int findmax(int score[],int n)/*findmax()函数的定义*/
{ int max,i;
max=score[0];/*假设score[0]为当前函数的最大值*/
for(i=1;i<n;i++)
{ if(score[i]>max)/*若score[i]值较大*/
max=score[i];/*则用当前的score[i]值替换当前最大值*/
}
return max;/*返回最高分*/
}