13.cpp

来自「成绩管理1.每个学生平均分 2.每门课的平均分 3.找出最高分数所对应的学生和课」· C++ 代码 · 共 89 行

CPP
89
字号
//输入10个学生5门课的成绩,分别用函数求:1.每个学生平均分;2.每门课的平均分;3.找出最高分数所对应的学生和课程;4.求平均分方差
#include <stdio.h>
float aver1[10],aver2[5],high;     //函数1中使用,函数2中使用
int x,y;                           //x,y是标记i,j的,实际上是从1开始的,不是0,所以x=i+1;y=j+1;函数3中使用
void aver_number(float score[10][5])        //每个学生平均分的函数1
{
	int i,j;
	float sum;
	for(i=0;i<=9;i++)
	{
		sum=0;
		for(j=0;j<=4;j++)
			sum=sum+score[i][j];
		aver1[i]=sum/5;
	}
}

void aver_course(float score[10][5])        //每门课程的平均分的函数2
{
	int i,j;
	float sum;
	for(j=0;j<=9;j++)
	{
		sum=0;
		for(i=0;i<=9;i++)
			sum=sum+score[i][j];
		aver2[j]=sum/10;
	}
}

void highest_score(float score[10][5])     //找出最高分数的函数3
{
	int i,j;
	high=score[0][0];
	for(i=0;i<=9;i++)
		for(j=0;j<=4;j++)
			if(score[i][j]>=high)
			{
				high=score[i][j];
				x=i+1;
				y=j+1;
			}
}

float fangcha_aver1(float aver1[10])      //求平均分方差的函数4
{
	int i;
	float sum1=0,sum2=0,fangcha;
	for(i=0;i<=9;i++)
	{
		sum1=sum1+aver1[i]*aver1[i];
		sum2=sum2+aver1[i];
	}
	fangcha=sum1/10-(sum2/10)*(sum2/10);
	return(fangcha);
}

void main()
{
	int i,j;
	float score[10][5];
	for(i=0;i<=9;i++)
	{
		printf("请输入第%d个学生的成绩:",i+1);   //输出1-10的序号
		for(j=0;j<=4;j++)
			scanf("%f",&score[i][j]);
	}
	aver_number(score);             //调用函数1
	aver_course(score);             //调用函数2
	highest_score(score);           //调用函数3

    printf(" Number  course1   course2   course3   course4   course5    aver\n");
	for(i=0;i<=9;i++)
	{
		printf(" NO.%2d    ",i+1);   //输出1-10的序号
		for(j=0;j<=4;j++)
			printf("%-10.1f",score[i][j]);
		printf("%-10.1f",aver1[i]);
		printf("\n");
	}
	printf("总平均分: ");
	for(j=0;j<=4;j++)
		printf("%-9.1f",aver2[j]);
	printf("\n");
	printf("最高分为:  %.1f   NO.%d  course%d",high,x,y);
	printf("\n");
	printf("平均分方差为:  %-5.2f\n",fangcha_aver1(aver1));	   //调用函数4
}
	

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?