向函数传递一维数组的例子:从键盘输入某班学生某门课程的成绩, (假设每班人数最多不超过40人),当输入成绩为负值时,表示输入结束 试编程计算其平均分,并输出实际输入的学生人数

在这里插入图片描述

/*向函数传递一维数组的例子:从键盘输入某班学生某门课程的成绩,
(假设每班人数最多不超过40人),当输入成绩为负值时,表示输入结束 
试编程计算其平均分,并输出实际输入的学生人数*/
#include<stdio.h>
#define N 40
int average(int score[],int n);/*average()函数的原型*/
int readscore(int score[]);/*readscore()函数原型*/ 
main()
{	int score[N],aver,n;
	n=readscore(score);/*调用函数readscore()输入成绩,返回学生人数*/	
	printf("总学生人数是:%d\n",n);
	aver=average(score,n);/*调用函数average计算平均分,返回平均分*/ 
	printf("平均分是:%d\n",aver);
	return 0; 
}
/*函数功能:计算n个学生成绩的平均分*/
int average(int score[],int n)/*average()函数定义*/
{	int i,sum=0;
	for(i=0;i<n;i++)
	{	sum+=score[i];
	}
	return n>0?sum/n:-1;/*防止除0问题发生*/
 } 
/*函数功能:输入学生某门课程成绩,当输入成绩为负值时,结束输入,返回学生人数*/
int readscore(int score[])/*readscore()函数的定义*/
{	int i=-1;/*i初始化为-1,循环体内增一后可保证数组下标从0开始*/
	do{
		i++;
		printf("输入分数:");
		scanf("%d",&score[i]); 
	} while(score[i]>=0);/*输入负数时结束输入*/
	return i;/*返回学生人数*/ 
 } 
 

猜你喜欢

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