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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

代码写注释

请赞赏我

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值