OpenJudge//////////成绩统计

描述
某班级有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<iomanip>
using namespace std;
struct student
{
    
    
    char num[10];
    double yw,sx,yy,wl,hx,sw;
    double sum;
}s[80];
struct subject{
    
    
double avg=0.0;
double sum=0.0;
}sj[10];
int main()
{
    
    
    int n,i,j;
    cin>>n;

    for(i=0;i<n;i++)
        cin>>s[i].num>>s[i].yw>>s[i].sx>>s[i].yy>>s[i].wl>>s[i].hx>>s[i].sw;
        for(i=0;i<n;i++)
        {
    
    
            s[i].sum=s[i].yw+s[i].sx+s[i].yy+s[i].wl+s[i].hx+s[i].sw;
        }

        for(i=0;i<n;i++)
            sj[0].sum=sj[0].sum+s[i].yw;
        for(i=0;i<n;i++)
            sj[1].sum=sj[1].sum+s[i].sx;
        for(i=0;i<n;i++)
            sj[2].sum=sj[2].sum+s[i].yy;
        for(i=0;i<n;i++)
            sj[3].sum=sj[3].sum+s[i].wl;
        for(i=0;i<n;i++)
            sj[4].sum=sj[4].sum+s[i].hx;
        for(i=0;i<n;i++)
            sj[5].sum=sj[5].sum+s[i].sw;

            for(j=0;j<6;j++)
                sj[j].avg=sj[j].sum/n;
            for(i=0;i<n;i++)
                cout<<s[i].num<<' '<<s[i].yw<<' '<<s[i].sx<<' '<<s[i].yy<<' '<<s[i].wl<<' '<<s[i].hx<<' '<<s[i].sw<<' '<<s[i].sum<<endl;
            for(j=0;j<6;j++)
                cout<<setiosflags(ios::fixed)<<setprecision(1)<<sj[j].avg<<' ';
            cout<<endl;
}

猜你喜欢

转载自blog.csdn.net/weixin_45921943/article/details/104537966