总时间限制: 1000ms 内存限制: 128000kB
描述
某班级有n人(n<80),期末考试的六门学科分别是语文、数学、英语、物理、化学、生物。考试成绩出来了,现要求每人的成绩总分和各学科的平均分。输入班级人数,每人的座号和各学科成绩,输出每人的座号、成绩和各学科平均分(四舍五入保留1位小数)
输入
第一行一个整数n,表示n个人
以下n行,每行7个整数,分别表示座号和语文、数学、英语、物理、化学、生物的成绩。
输出
输出n行整数,每行8个整数,分别表示座号和语文、数学、英语、物理、化学、生物、总分的成绩。
最后一行是语文、数学、英语、物理、化学、生物的平均分(保留1位小数)。
样例输入
3
1 67 89 93 82 87 90
2 80 98 87 82 89 93
3 78 86 92 90 67 85
样例输出
1 67 89 93 82 87 90 508
2 80 98 87 82 89 93 529
3 78 86 92 90 67 85 498
75.0 91.0 90.7 84.7 81.0 89.3
#include <iostream>
#include <cstdio>
#include <iomanip>
using namespace std;
struct garde
{
double id;
double yuwen;
double shuxue;
double yingyu;
double wuli;
double huaxue;
double shengwu;
double sum;
};
int main()
{
int n,i,j;
double ave[6]={0,0,0,0,0,0};
garde a[80];
cin>>n;
for(i=0;i<n;i++)
{
cin>>a[i].id>>a[i].yuwen>>a[i].shuxue>>a[i].yingyu
>>a[i].wuli>>a[i].huaxue>>a[i].shengwu;//输入
a[i].sum=a[i].yuwen+a[i].shuxue+a[i].yingyu
+a[i].wuli+a[i].huaxue+a[i].shengwu;//总分
cout<<a[i].id<<" "<<a[i].yuwen<<" "<<a[i].shuxue<<" "<<a[i].yingyu<<" "
<<a[i].wuli<<" "<<a[i].huaxue<<" "<<a[i].shengwu<<" "<<a[i].sum<<endl;//输出
}
for(i=0;i<n;i++)
{ave[0]+=a[i].yuwen;//各科总分
ave[1]+=a[i].shuxue;
ave[2]+=a[i].yingyu;
ave[3]+=a[i].wuli;
ave[4]+=a[i].huaxue;
ave[5]+=a[i].shengwu;}
for(j=0;j<6;j++)
cout<<fixed<<setprecision(1)<<ave[j]/n<<" ";
}
——————————
总感觉还是有更好的方法,比如在结构体中顶一个数组。
struct student
{
int id;
double point[7]
};
——————————————————————-
刚才尝试了一下,可以
代码给大家贴出来
#include <iostream>
#include <cstdio>
#include <iomanip>
using namespace std;
struct student
{
double id;
double point[7];//各科成绩
};
int main()
{
int n,i,j;
double ave[6]={0,0,0,0,0,0};//各科平均
student a[80];
cin>>n;
for(i=0;i<n;i++)
{a[6].point[6]=0;
cin>>a[i].id;
for(j=0;j<6;j++)
{
cin>>a[i].point[j];
a[i].point[6]+=a[i].point[j];
}
}
for(i=0;i<n;i++)
{
cout<<a[i].id<<" ";//输出
for(j=0;j<7;j++)
{
cout<<a[i].point[j]<<" ";
}
cout<<endl;
}
for(i=0;i<n;i++)
{ave[0]+=a[i].point[0];
ave[1]+=a[i].point[1];
ave[2]+=a[i].point[2];
ave[3]+=a[i].point[3];
ave[4]+=a[i].point[4];
ave[5]+=a[i].point[5];}
for(j=0;j<6;j++)
cout<<fixed<<setprecision(1)<<ave[j]/n<<" ";
}