hdu杭电2023水题求平均成绩,注意数据类型

6 篇文章 0 订阅
0 篇文章 0 订阅

假设一个班有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

注意数据类型用double;

ac代码:

#include<iostream>
#include<math.h>
using namespace std;
struct m
{
	double s1[6];
	double ave;
}stu[51];
int main()
{
	double s2[6];
	double m,n;
	while(cin>>m>>n)
	{
		for(int i=1;i<=m;i++)
		{	double a=0;
			int q=0;
		for(int j=1;j<=n;j++)
			{
			cin>>stu[i].s1[j];
			a+=stu[i].s1[j];
			q++;
			if(q==n) stu[i].ave =a/n;
			}
		}
		int w=1;
		double e=0;
		for(int i=1;i<=m;i++)
		 {	
		 	e+=stu[i].s1[w];
		 	if(i==m)
		 	{
		 		if(w<=n)
		 		{
		 			i=0;
		 			s2[w]=e/m;
		 			w++;
		 			e=0;
				 }
			 }
		 }
		 int count=0,o=0;
		 for(int i=1;i<=m;i++)
		 for(int j=1;j<=n;j++)
		 {	
		 	if(stu[i].s1[j]<s2[j])
			 {
			 	count=0;
				 break;
			 }
		 	else 
		 		count++;
			 if(count==n)
			 {
			 	count=0;
				 o++;
			 }
		 }
		 int z=1;
		 for(int i=1;i<=m;i++)
		 {
		 	printf("%.2lf",stu[i].ave);
		 	if(z<=m-1)
			 {
			 	z++;
				 cout<<" ";
			 }
		 }z=1;
		 cout<<endl;
		 for(int j=1;j<=n;j++)
		 {
		 	printf("%.2lf",s2[j]);
		 	if(z<=n-1)
			 {
			 	z++;
				 cout<<" ";
			 }
		 }
		 cout<<endl<<o<<endl<<endl;
	}
}

对于每个测试实例,输出3行数据,第一行包含n个数据,表示n个学生的平均成绩,结果保留两位小数;第二行包含m个数据,表示m门课的平均成绩,结果保留两位小数;第三行是一个整数,表示该班级中各科成绩均大于等于平均成绩的学生数量。 每个测试实例后面跟一个空行。 Sample Input 2 2 5 10 10 20 Sample Output 7.50 15.00 7.50 15.00 1 注意数据类型用double;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值