C++题目之聪明的舒克

题目描述

舒克是一只聪明的小老鼠(什么什么?谁规定老鼠就不能叫舒克了?真是!)她正在四处找水喝呢……她发现了一些水罐,里面都有水。她趴在每个水罐口上都试了一遍,结果仍然一口水没喝到——这些水罐里的水都很少,水面距离罐口太远,她用嘴够不着。这可怎么办呢?如果是你,你是不是会想把水罐打翻?只可惜,舒克只是一只小老鼠,没那么大力气呢。不过,这也难不倒她,聪明的舒克自然有办法:她转过身来,把尾巴放进去浸湿,再喝尾巴上的水就好了,够聪明吧?我们已知每个水罐里水面到水罐口的距离,还知道舒克的尾巴最多可以伸进水罐口t厘米。根据这些条件,请你判断一下:有多少个水罐中的水可以被舒克喝到?

输入

第一行为两个整数n (1<=n<=20 )、t (10<=t<=20 ),分别表示水罐的数量和舒克的尾巴可以够到的最大深度。 之后一行中有n个用空格分开的整数,分别表示每个水罐中水面到水罐口的距离。

输出

只有一个整数,表示有多少个水罐中的水可以被舒克喝到。

样例输入

5 10 8 7 13 5 12

样例输出

3

问题分析

用数组存储罐中水到罐口的高度,将尾长挨个与高度比较。

代码

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
using namespace std;
int main(){
     int n , t , i ,cnt = 0;
     cin >> n >> t;
     int a[n + 1];  //用于存放每个罐子中水面离罐口的高度
     for(i = 0;i < n;i++)  
     {
         cin >> a[i];
     }
     for(i = 0;i < n;i++)  
     {
         if(t >= a[i])  // 判断尾长是否大于高度
         {
             cnt++;
         }
     }
     cout << cnt;
     return 0;
}