复仇者联盟之数组成绩统计
时间: 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;
}
题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。