PTA 5-3 解题报告
问题描述
5-3 计算平均值 (50分)
现在为若干组整数分别计算平均值。
已知这些整数的绝对值都小于100,每组整数的数量不少于1个,不大于20个。
输入格式:首先输入K(不小于2,不大于20)。接下来每一行输入一组数据(至少有一组数据),每组至少有一个数据,在有多个数据时,两个数据之间有1到3个空格。最后一行输入100,标志输入的结束。
输出格式:对于每一组数据,输出其前K个数据的均值,如果该组数据个数少于K时,则输出该组所有数据的均值。输出的均值只输出整数部分,直接忽略小数部分。
样例输入:
3
10 30 20 40
-10 17 10
10 9
100
样例输出:
20
5
9
时间限制:400ms
内存限制:64MB
代码长度限制:16kB
判题程序:系统默认
作者:east
单位:福州大学
解题思路
因为数据很小,所以不需要做什么优化。
其实题目的重点就在于如何读入数据以及如何将读入的数据处理成令人愉悦的形式,另外还有一些需要注意的小地方,如负数的判断、均值个数的判断等。
关于如何读入数据,可以用gets或fgets将数据作为字符串整行读进来,要注意的是以下第一个数据K后的回车也会被读入,所以要多读一次。不过因为gets不太安全,所以新标准C11中把它抛弃了。。VS中gets被预处理为gets_s,用法为gets_s(变量名,size)。或者改用fgets也可以。fgets用法为fgets(变量名,size,文件),如果是控制台中的,文件就用stdin。
关于如何处理读入的数据,其实处理字符串的问题平时就经常碰到,而且这次的计算器中也有类似的,就是在栈运算中要把表达式的数字单独挑出来。我用的方法,是在判断当当前字符的ASCLL码值介于'0'与'9'之间时,进行循环累加,部分代码如下:
while ((c[i] >= '0') && (c[i] <= '9'))
{
t = 10 * t + c[i] - '0';
i++;
}
关于负数的判断,其实不需要对负数和正数进行分类,只要设置一个初始值为1的变量,在进入数字判时,对其前一位的符号进行判断。如果是负数,则将变量值设为-1,否则不变,最后再与筛出来的数相乘就行。
还有就是需要求均值的个数要注意一下。
代码
#include<iostream>
#include<cstring>
using namespace std;
int main()
{
int i, j, k, n, m, s, t, a[30];
char c[1000];
cin >> n;
fgets(c, 1000, stdin);
while (1 > 0)
{
fgets(c, 1000, stdin);
j = -1;
i = 0;
while (i < strlen(c))
{
if ((c[i] >= '0') && (c[i] <= '9'))
{
m = 1;
if (c[i - 1] == '-') m = -1;
t = 0;
while ((c[i] >= '0') && (c[i] <= '9'))
{
t = 10 * t + c[i] - '0';
i++;
}
j++;
a[j] = t*m;
}
i++;
}
if ((j == 0) && (a[0] == 100)) break;
j++;
s = 0;
if (j > n)
{
for (i = 0; i < n; i++)
s += a[i];
cout << s / n << endl;
}
else
{
for (i = 0; i < j; i++)
s += a[i];
cout << s / j << endl;
}
}
return 0;
}
如果还有其他需要,那再补充。
PTA 5-3 解题报告的更多相关文章
- CH Round #56 - 国庆节欢乐赛解题报告
最近CH上的比赛很多,在此会全部写出解题报告,与大家交流一下解题方法与技巧. T1 魔幻森林 描述 Cortana来到了一片魔幻森林,这片森林可以被视作一个N*M的矩阵,矩阵中的每个位置上都长着一棵树 ...
- 二模13day1解题报告
二模13day1解题报告 T1.发射站(station) N个发射站,每个发射站有高度hi,发射信号强度vi,每个发射站的信号只会被左和右第一个比他高的收到.现在求收到信号最强的发射站. 我用了时间复 ...
- BZOJ 1051 最受欢迎的牛 解题报告
题目直接摆在这里! 1051: [HAOI2006]受欢迎的牛 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 4438 Solved: 2353[S ...
- 习题:codevs 2822 爱在心中 解题报告
这次的解题报告是有关tarjan算法的一道思维量比较大的题目(真的是原创文章,希望管理员不要再把文章移出首页). 这道题蒟蒻以前做过,但是今天由于要复习tarjan算法,于是就看到codevs分类强联 ...
- 习题:codevs 1035 火车停留解题报告
本蒟蒻又来写解题报告了.这次的题目是codevs 1035 火车停留. 题目大意就是给m个火车的到达时间.停留时间和车载货物的价值,车站有n个车道,而火车停留一次车站就会从车载货物价值中获得1%的利润 ...
- 习题: codevs 2492 上帝造题的七分钟2 解题报告
这道题是受到大犇MagHSK的启发我才得以想出来的,蒟蒻觉得自己的代码跟MagHSK大犇的代码完全比不上,所以这里蒟蒻就套用了MagHSK大犇的代码(大家可以关注下我的博客,友情链接就是大犇MagHS ...
- 习题:codevs 1519 过路费 解题报告
今天拿了这道题目练练手,感觉自己代码能力又增强了不少: 我的思路跟别人可能不一样. 首先我们很容易就能看出,我们需要的边就是最小生成树算法kruskal算法求出来的边,其余的边都可以删掉,于是就有了这 ...
- NOIP2016提高组解题报告
NOIP2016提高组解题报告 更正:NOIP day1 T2天天爱跑步 解题思路见代码. NOIP2016代码整合
- LeetCode 解题报告索引
最近在准备找工作的算法题,刷刷LeetCode,以下是我的解题报告索引,每一题几乎都有详细的说明,供各位码农参考.根据我自己做的进度持续更新中...... ...
- ACM: Just a Hook 解题报告 -线段树
E - Just a Hook Time Limit:2000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u D ...
随机推荐
- python并发编程之进程池,线程池,协程
需要注意一下不能无限的开进程,不能无限的开线程最常用的就是开进程池,开线程池.其中回调函数非常重要回调函数其实可以作为一种编程思想,谁好了谁就去掉 只要你用并发,就会有锁的问题,但是你不能一直去自己加 ...
- 初识ActiveMQ
消息中间件的初步认识 什么是消息中间件? 消息中间件是利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成.通过提供消息传递和消息排队模型,可以在分布式架构下扩展进程 ...
- Advanced Wlan Attacks (RADIUS)
1.查询连接到无线接入点的情况 使用命令 airodump-ng wlan0mon 可以看到 有用的信息.我们知道如果有一个客户端使用验证码成功连接到. 顺便查一下其中一个连接的设备的MAC地址的 ...
- XSS-HTML&javaSkcript&CSS&jQuery&ajax
1.设置不同的样式列表 <style> ul.a{list-style-tyrp:circle;} ul.b{list-style-type:square;} ul.c{list ...
- Oracle unusable index 与unvisible index
1 可见性 索引的可见性(visibility)指的是该索引是否对CBO优化器可见,即CBO优化器在生成执行计划的时候是否考虑该索引,可以看作是索引的一个属性.如果一个索引可见性属性为:invisib ...
- A.Ocean的礼物线段树
A: Ocean的礼物 Time Limit: 2 s Memory Limit: 128 MB Submit My Status Problem Description 皇家理工存在一段很神 ...
- 微信jssdk分享功能开发
先理解下分享: 在app端 ,经常能看见 分享按钮的功能,(分享给朋友,分享到朋友圈,分享到QQ空间等等): https://open.weixin.qq.com/(微信开发平台),这需要到开放平台注 ...
- javascript var变量删除
var有三种声明的情形: var声明的全局变量 var在函数范围内声明的局部变量 eval中声明的全局变量. 首先, 1.2种情形var声明的变量是无法删除的. 尽管var声明的全局变量是属于wind ...
- nginx做代理安装docker
1.环境 服务器IP 服务用途 是否能 联网 192.168.126.128 docker服务器(简称B服务器) 不能 192.168.126.130 nginx服务器(简称A服务器) 能 2.背景 ...
- 【Android】Android 设置Activity窗体 不显示标题和全屏显示
[一]Android 设置Activity窗体 不显示标题 android:theme="@android:style/Theme.NoTitleBar" <activity ...