题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2023

求平均成绩

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<iostream>
#include<cstdio>
using namespace std; int main()
{
double m,n;
while(cin >> n >> m)//n个学生,m个科目
{
double fenshu[][] = {},fen[] = {};//fenshu二维数组记录每个学生的各科分数,fen一维数组记录某一学生的总分
for(int i = ;i < n;i++)
{
for(int j = ;j < m;j++)
{
cin >> fenshu[i][j];//循环读入n*m个成绩数据
fen[i] += fenshu[i][j];//对每个学生的成绩进行累加,并且记录在一维数组fen中
}
}
//输出第一行
for(int i = ;i < n;i++) //注意控制输出格式,求出每个学生的平均成绩
{
if(i == n - )
printf("%.2lf",fen[i] / m);
else
printf("%.2lf ",fen[i] / m);
}
cout << endl;
//输出第二行
double ave1[] = {},ave2[] = {};//ave1数组记录各科的总分,ave2数组记录各科的平均分,注意输出时的格式
for(int j = ;j < m;j++)//外层循环为j 相当于对某一列求总和
{
for(int i = ;i < n;i++)//内层循环为i//首先对各科的分数累加
ave1[j] += fenshu[i][j];
ave2[j] = ave1[j] / n;//取平均
if(j == m - )
printf("%.2lf",ave2[j]);
else
printf("%.2lf ",ave2[j]);
}
cout << endl;
//计算有几个学生的各科成绩都大于平均成绩的
int temp,count = ;
for(int i = ;i < n;i++)//依次遍历
{
temp = ;
for(int j = ;j < m;j++)
if(fenshu[i][j] >= ave2[j])//依题意,如果学生的某一学科的成绩会大于等于这个学科的平均成绩,那么临时变量temp加一
temp++;
if(temp == m)//说明如果学生的m个学科的成绩都大于各个学科的平均成绩,则符合条件,计数器加一
count++;
}
cout << count << endl << endl;//注意输出格式
}
return ;
}

这实际上是一道水题,在我们学校上的测试平台上是 萌新题,我做了2-3个小时,我哭了/(ㄒoㄒ)/~~

思路是这样的,可将输入学生的成绩看成一个矩阵,最后只需对矩阵的行和列进行处理与判断就好了,太水了我/(ㄒoㄒ)/~~

HDU2023求平均成绩 - biaobiao88的更多相关文章

  1. hdu2023 求平均成绩 ~~很闲~~~

    #include<iostream> #include<stdio.h> #include<math.h> #include<string.h> #in ...

  2. HDOJ2023求平均成绩

    求平均成绩 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submi ...

  3. hdoj 2023 求平均成绩

    求平均成绩 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submi ...

  4. 杭电ACM求平均成绩

    求平均成绩 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Subm ...

  5. HDU2023:求平均成绩

    Problem Description 假设一个班有n(n<=50)个学生,每人考m(m<=5)门课,求每个学生的平均成绩和每门课的平均成绩,并输出各科成绩均大于等于平均成绩的学生数量. ...

  6. HDU_2023——求平均成绩

    Problem Description 假设一个班有n(n<=50)个学生,每人考m(m<=5)门课,求每个学生的平均成绩和每门课的平均成绩,并输出各科成绩均大于等于平均成绩的学生数量. ...

  7. HDU 2023 求平均成绩

    Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Submit Status Practice HDU ...

  8. 一维数组的求平均成绩 Day06

    package com.sxt.arraytest1; /* * 求班里学生的平均成绩,以及成绩的综合 输出每个同学的成绩 */ import java.util.Arrays; import jav ...

  9. MFC(c++大作业)基本对话框的使用(求平均成绩)

    OOPEx2Dlg.cpp // OOPEx2Dlg.cpp : 实现文件 // #include "stdafx.h" #include "OOPEx2.h" ...

随机推荐

  1. Rust中的字符串处理

    一路看过来,怕是我知道的所有语言当,处理最复杂吧. 当然,如果能正确处理,也是能理解最到位的. 这,就是我为什么要学Rust的原因. 暂无用武之地,但逻辑体系和知识点够复杂,才能应对更多事务~ fn ...

  2. 8-剑指offer: 替换空格

    题目描述 请实现一个函数,将一个字符串中的每个空格替换成"%20".例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy. 代码: c ...

  3. HBuilder创建app 基础

    一.了解HBuilder HBuilder内封装了大量的书籍,极大方便了使用 官方文档: http://dev.dcloud.net.cn/mui/ui/ 关于布局: mhead  表头.mbody ...

  4. NAT网络地址转换的原理--笔试答题版

    最早接触NAT是在做网络工程师的时候,NAT是做网络工程师必需会的知识点和技能,后来在面试运维的时候也经常被用到,在运维的某些知识点当中也会被引用到,如LVS当中. 为什么需要NAT(网络地址转换)? ...

  5. 201871010135 张玉晶《面向对象程序设计(java)》第十二周学习总结

      内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/zyja/p/118654 ...

  6. 网络yum源配置

    系统环境:CentOS7 [1] 首先备份/etc/yum.repos.d/CentOS-Base.repo cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum ...

  7. [LeetCode] 876. Middle of the Linked List 链表的中间结点

    Given a non-empty, singly linked list with head node head, return a middle node of linked list. If t ...

  8. C# 迭代器与yield关键字

    迭代器模式是设计模式的一种,因为其运用的普遍性,很多语言都有内嵌的原生支持 在.NET中,迭代器模式是通过IEnumerator.IEnumerable两个接口(有非泛型和泛型2种版本)来封装的 迭代 ...

  9. jquery + node 通过 CORS 实现跨域访问,支持cookie和自定义header

    跨域有多种方式,现在的情况看来还是CORS更适合一些,有很多优点,比如浏览器正式支持.支持post.可以控制跨域访问的网站等. 我们来看看node如何实现cors方式的跨域.在网上找到了一些代码,考过 ...

  10. Nodejs操作MySQL数据库

    https://github.com/mysqljs/mysql   如何用nodejs操作MySql数据呢,其实写法还是简单的, 1.开始在你的node项目中 npm install mysql - ...