概述
hdu 2023 求平均成绩
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 62096 Accepted Submission(s): 14893
Problem Description
假设一个班有n(n<=50)个学生,每人考m(m<=5)门课,求每个学生的平均成绩和每门课的平均成绩,并输出各科成绩均大于等于平均成绩的学生数量。
Input
输入数据有多个测试实例,每个测试实例的第一行包括两个整数n和m,分别表示学生数和课程数。然后是n行数据,每行包括m个整数(即:考试分数)。
Output
对于每个测试实例,输出3行数据,第一行包含n个数据,表示n个学生的平均成绩,结果保留两位小数;第二行包含m个数据,表示m门课的平均成绩,结果保留两位小数;第三行是一个整数,表示该班级中各科成绩均大于等于平均成绩的学生数量。
每个测试实例后面跟一个空行。
Sample Input
2 2
5 10
10 20
Sample Output
7.50 15.00
7.50 15.00
1
/*题解:
用结构体做更加简单
*/
#include<cstdio>
#include<cstring>
struct student
{
double mk[8];
double ave;
}a[55];
int main()
{
int n,m,i,j,t,count;
double b[1010],sum;
while(scanf("%d %d",&n,&m)!=EOF)
{
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
for(i=0; i<n; i++)
{
for(j=0,sum=0.0; j<m; j++)
{
scanf("%lf",&a[i].mk[j]);
sum+=a[i].mk[j];
}
a[i].ave=sum/(m*1.0);
}
for(i=0; i<n; i++)
{
if(i==n-1) printf("%.2lf",a[i].ave);
else printf("%.2lf ",a[i].ave);
}
printf("n");
for(j=0; j<m; j++)
{
for(i=0,sum=0; i<n; i++)
{
sum+=a[i].mk[j];
}
b[j]=sum/(n*1.0);
if(j==m-1) printf("%.2lf",b[j]);
else printf("%.2lf ",b[j]);
}
printf("n");
for(i=0,count=0; i<n; i++)
{
for(j=0,t=0; j<m; j++)
{
if(a[i].mk[j]>=b[j])
t++;
}
if(t==m) count++;
}
printf("%dnn",count);
}
return 0;
}
最后
以上就是有魅力人生为你收集整理的hdu 2023 求平均成绩的全部内容,希望文章能够帮你解决hdu 2023 求平均成绩所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复