/******************************************************************
*  源程序名：Exercise5_2_2.cpp                  　　　　　         *
*  功能：处理某班1至5号同学3门课的成绩，它们是语文、数学和英语。   *
*        统计并输出每门课程的总成绩、平均成绩以及每个学生课程的    *
*        总成绩、平均成绩。                                        *
******************************************************************/
#include <iostream.h>
#include <iomanip.h>
#define N 5//学生人数
void main()
{
	int score[N][5],total[3],avg[3];//score存放5名学生的三门分数、总分和平均分，total、avg存放3门课程的总成绩和平均成绩
	int i,j,n;
	for (i=0;i<N;i++)
	{
		cout<<"请输入第"<<i+1<<"个学生语文、数学、英语成绩：";
		for (j=0;j<3;j++)
			cin>>score[i][j];
	}
	for (i=0;i<N;i++)//计算每个学生3门课的部分和平均分
	{
		score[i][3]=0;
		for (j=0;j<3;j++)
			score[i][3]+=score[i][j];//求总分
		score[i][4]=score[i][3]/3;//求平均分
	}
	for (j=0;j<3;j++)//计算每门课程的总分和平均分
	{
		total[j]=0;
		for (i=0;i<N;i++)
			total[j]+=score[i][j];//求总分
		avg[j]=total[j]/N;//求平均分
	}
	cout<<setw(8)<<"学号"<<setw(8)<<"语文"<<setw(8)<<"数学"
		<<setw(8)<<"英语"<<setw(8)<<"总分"<<setw(8)<<"平均分"<<endl;
	for (i=0;i<N;i++)
	{
		cout<<setw(6)<<i+1<<'\t';//输出学号
		for (j=0;j<5;j++)//输出每名同学各科成绩、总成线、平均成绩
			cout<<setw(8)<<score[i][j];
		cout<<endl;
	}
	cout<<setw(8)<<"总分";
	for (i=0;i<3;i++)//输出每门课程总分
		cout<<setw(8)<<total[i];
	cout<<endl<<setw(8)<<"平均分";
	for (i=0;i<3;i++)//输出每门课程平均分
		cout<<setw(8)<<avg[i];
	cout<<endl;
}
