复仇者联盟之数组成绩统计

复仇者联盟之数组成绩统计

时间: 1ms        内存:128M

描述:

定义一个5行3列的二维数组,各行分别代表一名学生的高数、英语、C++成绩。再定义一个有5个元素的一维数组,用于存储每名学生的平均成绩。请输入学生的各门课成绩,输出带平均成绩的成绩单,以及所有学生平均成绩的平均值。

输入:

15个整数,表示5名学生3科的成绩

输出:

分5行显示每名学生的成绩及平均成绩
再显示所有学生平均成绩的平均值(保留两位小数)

示例输入:

97 78 87
78 63 68
73 81 85
91 87 88
76 81 89

示例输出:

97 78 87 87.33
78 63 68 69.67
73 81 85 79.67
91 87 88 88.67
76 81 89 82.00
81.47

提示:

参考答案(内存最优[1092]):

#include<stdio.h>
int main()
{
    int a[9][9];
    int i,j;
    float n=0,m=0,o=0,p=0,q=0,b=0,c,d;
    for(i=1;i<=5;i++)
        for(j=1;j<=3;j++)
    scanf("%d",&a[i][j]);
    for(i=1,j=1;j<=3;j++)
    {
    n+=a[i][j];
    printf("%d ",a[i][j]);
    }
    n=n/3;
    printf("%.2f\n",n);
    for(i=2,j=1;j<=3;j++)
    {
    m+=a[i][j];
    printf("%d ",a[i][j]);
    }
    m=m/3;
    printf("%.2f\n",m);
    for(i=3,j=1;j<=3;j++)
    {
    o+=a[i][j];
    printf("%d ",a[i][j]);
    }
    o=o/3;
    printf("%.2f\n",o);
    for(i=4,j=1;j<=3;j++)
    {
    p+=a[i][j];
    printf("%d ",a[i][j]);
    }
    p=p/3;
    printf("%.2f\n",p);
    for(i=5,j=1;j<=3;j++)
    {
    q+=a[i][j];
    printf("%d ",a[i][j]);
    }
    q=q/3;
    printf("%.2f\n",q);
    printf("%.2f",(o+m+n+p+q)/5);
    return 0;
}

参考答案(时间最优[0]):

#include<iostream>
#include <iomanip>
using namespace std;
int main()
{
    int score[5][3];  //保存成绩的数组
    double average[5];   //保存平均成绩的数组
    int i,j;
    double sum;
    //输入成绩
    for(i=0; i<5; i++)
        for(j=0; j<3; j++)
            cin>>score[i][j];
    //计算每位同学的平均成绩,保存到数组average中
    for(i=0; i<5; i++)
    {
        sum=0;
        for(j=0; j<3; j++)
            sum+=score[i][j];
        average[i]=sum/3.0;
    }
    //输出带平均成绩的成绩单
    cout<<setiosflags(ios::fixed)<<setprecision(2);
    for(i=0; i<5; i++)
    {
        for(j=0; j<3; j++)
            cout<<score[i][j]<<" ";
        cout<<average[i]<<endl;
    }
    //计算平均成绩的平均值并输出
    sum=0;
    for(i=0; i<5; i++)
        sum+=average[i];
    cout<<sum/5.0<<endl;
    return 0;
}

题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。

点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注