面向3-8岁的幼儿儿童
免费编程入门启蒙网站

全国编程竞赛NOIP试题分析(一)

上个星期,小编发给同学们的竞赛试题大家都做了吗?

有的同学私下和小编说题目有些难,没有思路呢。没关系,今天小编就和大家一起分析一下第一道题目的解题思路。

试题分析(一)
第一题:跑动距离

小张为某足球队的统计人员,他的职责协助主教练记录运动员每场比赛跑动距离,并做好统计。足球队有n个运动员,每个运动员跑动距离为s1, s2, …, sn,跑动距离大于等于7000米,记录为良好。

写一个程序输入n和s,输出运动员动距离和跑动距离良好的人数。

【输入格式】

输入的第一行包含整数n(1≤n≤45),足球运动员人数。

输入第二行到第n+1行为每个运动员跑动距离。

【输出格式】

输出二行。

第一行:平均跑动距离,保留一位小数(四舍五入)。

第二行:跑动距离大于良好的人数。

【输入输出样例】

输入:

5

4500

5200.5

7000

7350

6412.3

输出:

6092.6

2

试题分析(一)
试题分析(一)
样/例/说/明

5个运动员跑动总距离为:4500+5200.5+7000+7350+6412.3=30462.8,则平均距离为6092.56,保留一位小数为6092.6,第三个运动员跑动距离为7000、第四个运动员跑动距离为7350,则跑动距离良好的人数为2。

试题分析(一)
试题分析(一)
通过样例说明是不是觉得如果这是一道数学题目,那简直太简单了。其实,我们编写程序的第一步就是需要进行建模,也就是说,用数学方法明确题目的解决办法之后,将其转化为编程思路。

这道题目,第一次输入的是运动员的人数n(样例中n为5),之后输入的数值是每个运动员跑动距离,样例中输入的跑动数值分别是4500,5200.5,7000,7350,6412.3。

需要提醒大家的是,输出结果需要保留一位小数,所以平均跑动距离需要设定为什么数据类型呢?

这里定义double类型的数组存放每个运动员的跑动距离,变量aver为所有运动员的平均跑动距离:

double a[n+1], aver=0;

我们知道输入的跑动距离数值个数和第一次输入的运动员人数是相关的。这里可以使用for循环控制输入次数

for ( int i=1 ; i<=n; i++)

题目要求输出两个数值,分别是平均跑动距离跑动距离良好的人数。我们知道要想求出平均值,首先需要知道总的跑动距离是多少。

在循环体中要对每次输入的距离进行累加,并判断每次输入的跑动距离是否满足良好的判断条件(>=7000)

cin>>a[i];

aver+=a[i];

if(a[i]>=7000)

count++;

最后,平均跑动距离相信难不倒各位小伙伴喽。

aver/=n;

试题分析(一)
怎么样?同学们是不是都已经有了编程思路了呢?小编这里也特别贴心的为大家写出完整的程序。如果还有疑问,可以留言咨询哦。

试题分析(一)
试题分析(一)
有些小伙伴还没有C++语言的编程基础,很想学习,赶紧报名参加我们的冬令营吧!让你的假期更有意义更充实哦!

每周六,周日上午10:00都有冬令营相关的免费试听课哦。快来预约报名吧!

试题分析(一)
helloworld少儿编程

试题分析(一)
电话:17361882359

地址:南京市玄武区仙鹤新天地广场2栋-302

欢迎来电咨询,还可以预约试听噢!

分享到: 更多 (0)