函数+数组(一维)(计算学生成绩)

函数+数组(计算学生成绩)

问题描述 :键盘输入某班学生某门课的成绩 计算平均分+实际输入成绩的学生人数+打印最高成绩
分块实现

1 人数+成绩平均值计算

#include<stdio.h>
#define N 40
int Average(int score[],int n);
void ReadScore(int score[],int n);
int main()
{
	int score[N],aver,n;
	printf("input n:");
	scanf("%d",&n);
	ReadScore(score,n);                          //数组名作为函数实参调用函数R 
	aver=Average(score,n);                     //数组名作为函数实参调用函数A 
	printf("Average score is %d\n",	aver);
	return 0;
} 
int Average(int score[],int n)
{
	int i,sum=0;
	for(i=0;i<n;i++)
	{
		sum+=score[i];
	}
	return sum/n;      
}
void ReadScore(int score[],int n)
{
	int i;
	printf("input score:");
	for(i=0;i<n;i++)
	{
		scanf("%d",&score[i]); 
	}
}

在这里插入图片描述
2 加入不合法数据输入验证

#include<stdio.h>
#define N 40
int Average(int score[],int n);
int ReadScore(int score[]);
int main()
{
	int score[N],aver,n;
	n=ReadScore(score);                                   //调用函数+学生人数返回 
	printf("total students is %d\n",n);
	aver=Average(score,n);
	printf("Average score is %d\n",	aver);
	return 0;
}
int Average(int score[],int n)
{
	int i,sum=0;
	for(i=0;i<n;i++)
	{
		sum+=score[i]; 
	}
	return n>0 ?sum/n:-1;     
}
int  ReadScore(int score[])
{
	int i=-1;
	do
	{
		i++;
		printf("input score:");
		scanf("%d",&score[i]); 
	}while(score[i]>0);                                      //数据输入为负值,结束输入; 
	return i;
}

在这里插入图片描述3 读取出输入成绩中的最高分


#include<stdio.h>
#define N 40
int Average(int score[],int n);
int ReadScore(int score[]);
int FindMax(int score[],int n);
int main()
{
	int max,score[N],aver,n;
	n=ReadScore(score);                                   //调用函数+学生人数返回 
	printf("total students is %d\n",n);
	aver=Average(score,n);
	max=FindMax(score,n);
	printf("Average score is %d\n",	aver);
	printf("highest score is %d\n",	max);
	return 0;
}
int FindMax(int score[],int n)
{
	int max;
	for(int i=0;i<=n;i++)
	{
		if(score[i]>max)
		{
			max=score[i];
		}
	}
	return max;
}
int Average(int score[],int n)
{
	int i,sum=0;
	for(i=0;i<n;i++)
	{
		sum+=score[i]; 
	}
	return n>0 ?sum/n:-1;     
}
int  ReadScore(int score[])
{
	int i=-1;
	do
	{
		i++;
		printf("input score:");
		scanf("%d",&score[i]); 
	}while(score[i]>0);                                      //数据输入为负值,结束输入; 
	return i;
}

运行显示
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/CSDN447447LJH/article/details/91039337