从键盘输入某班学生某门课程的成绩, (假设每班人数最多不超过40人),当输入成绩为负值时,表示输入结束 试编程计算其最高分。

从键盘输入某班学生某门课程的成绩, (假设每班人数最多不超过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;/*返回最高分*/ 
  } 

猜你喜欢

转载自blog.csdn.net/YJG7D314/article/details/89067618