![6739fd4947b42259f64a21a94d6a655d.png](https://img-blog.csdnimg.cn/img_convert/6739fd4947b42259f64a21a94d6a655d.png)
![129caac8430a984b42cf50128ef3890a.png](https://img-blog.csdnimg.cn/img_convert/129caac8430a984b42cf50128ef3890a.png)
【题目描述】
陶陶家的院子里有一棵苹果树,每到秋天树上就会结出10个苹果。苹果成熟的时候,陶陶就会跑去摘苹果。陶陶有个30厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试。
现在已知10个苹果到地面的高度,以及陶陶把手伸直的时候能够达到的最大高度,请帮陶陶算一下她能够摘到的苹果的数目。假设她碰到苹果,苹果就会掉下来。
【输入】
包括两行数据。第一行包含10个100到200之间(包括100和200)的整数(以厘米为单位)分别表示10个苹果到地面的高度,两个相邻的整数之间用一个空格隔开。第二行只包括一个100到120之间(包含100和120)的整数(以厘米为单位),表示陶陶把手伸直的时候能够达到的最大高度。
【输出】
包括一行,这一行只包含一个整数,表示陶陶能够摘到的苹果的数目。
【输入样例】
100 200 150 140 129 134 167 198 200 111
110
【输出样例】
5
说明:
主要考查一维数组。
本题是NOIP 2005 复赛 普及组 第一题。
题目概述:
求陶陶伸手站在板凳上的高度大于或等于苹果高度的有多少个苹果。因为题目指出:只要手碰到苹果,都算摘到,所以也包括等于。
在输入数据中,第一行数据是固定10个苹果的高度,第二行数据是陶陶伸手的高度。而板凳的高度固定是30。以上数据均以厘米为单位。
本题是复赛题,题目一般较长,只要细心分析并不难理解题意。
思路分析:
陶陶伸手站在板凳上,与每一个苹果对比高度,如果陶陶的最大高度大于或等于某一个苹果,使用计数器累计起来。
苹果数固定为10个,可以使用一个int类型数组a[10]来存储10个苹果的高度。
而数组的输入,一般与循环相结合。
对比高度时,循环10次,只要陶陶的最大高度大于或等于某一苹果的高度,计数器+1。
数据类型:数据取值范围很小,可选int类型。
参考代码 - C++:
#include
using namespace std;
int main(){
int a[10], tt, cnt = 0;
for (int i = 0; i 10; i++) cin >> a[i];
cin >> tt; // 输入陶陶伸手的高度
tt += 30; // 陶陶加上板凳的高度(最大高度)
// 如果陶陶最大高度>=苹果的高度,计数器+1
for (int i = 0; i 10; i++)
if (tt >= a[i]) cnt++;
cout < return 0;
}
END
注:题目来源于网络,转载于《信息学奥赛一本通(C++版)在线评测系统》,点击下方的【阅读原文】即可打开该题的链接。
题解属于本微信公众号【大神编程】原创。