C/C++统计数 2021年12月电子学会青少年软件编程(C/C++)等级考试一级真题答案解析-LMLPHP

目录

C/C++统计数

一、题目要求

1、编程实现

2、输入输出

二、算法分析

三、程序编写

四、程序说明

五、运行结果

六、考点分析


C/C++统计数

2021年12月 C/C++编程等级考试一级编程题

一、题目要求

1、编程实现

给定一个数的序列S,以及一个区间[L, R], 求序列中介于该区间的数的个数,即序列中大于等于L且小于等于R的数的个数。

2、输入输出

输入描述:第一行3个整数n、L、R,分别表示序列的长度,区间的左端点,区间的右端点。(0 < n ≤ 10000, 1 ≤ L ≤ R ≤ 1000000)

第二行n个正整数,表示序列里的每一个数,每个数小于等于10000000

输出描述:只有一行,一个整数,即序列中大于等于L且小于等于R的数的个数。

输入样例:

5 1 10

11 8 1 10 16

输出样例:

3

二、算法分析

  1. 题目要求输出统计符合要求的个数
  2. 而本题的要求是在某个区间的数,这个区间由输入确定
  3. 要实现某个数在某个区间,只需要将这个数和区间的最小值和最大值进行比较,满足大于等于最小值同时小于等于最大值即可
  4. 只需要将输入第二行的每个数进行上述比较,符合要求的统计个数加1即可完成本题

三、程序编写

#include<iostream> 
using namespace std;
int main()
{
	int n,l,r,k,count = 0;
	cin >> n >> l >> r;
	for(int i=0;i<n;i++)
	{
		cin >> k;	
		if(k >= l && k <= r)
			count++;
	}
	cout << count << endl;
	return 0;
}

四、程序说明

  1. 首先需要导入输入输出流头文件
  2. 接着再次导入输入输出流格式控制头文件
  3. 然后是引入std命名空间中的所有成员到当前的程序中,这样在当前的程序中就可以直接使用 std 命名空间中的所有成员,而不需要使用的时候在成员前面加上(std::)前缀
  4. 接着声明程序的入口,也就是主函数(主函数在一个程序中只允许出现一次)
  5. 根据题目要求声明5个整型变量(n输入的个数,l区间的最小值,r区间的最大值,k输入的数字,count统计个数)
  6. 然后利用输入流对象cin,从键盘读取n,l,r3个变量的值
  7. 接着利用for循环,循环n次,逐一输入n个数,每输入一个数需要判断这个数是否大于等于区间最小值同时小于等于区间最大值,符号要求统计个数加一
  8. 最后利用输出流对象cout,输出统计变量count的值
  9. 最后返回0,程序结束

本文作者:小兔子编程 作者首页:https://blog.csdn.net/frank2102

五、运行结果

5 1 10
11 8 1 10 16

3

六、考点分析

难度级别:一般,这题相对而言难度不大,具体主要考查如下:

  1. 充分掌握变量的定义和使用
  2. 知晓如何判断一个数在某一个特定区间
  3. 学会输入流对象cin的使用,从键盘读入相应的数据
  4. 学会逻辑与运算的使用,需要运算两边的条件同时满足,表达式才返回true,否则返回false
  5. 学会for循环的使用,在确定循环次数的时候推荐使用学会
  6. 学会if条件判断语句的使用,满足一定条件才能执行后面的语句
  7. 掌握输出流对象cout的使用,与流插入运算符 << 结合使用将对象输出到终端显示
  8. 学会分析题目,算法分析,将复杂问题模块化,简单化,从中找到相应的解题思路
  9. 充分掌握变量定义和使用、分支语句、循环语句和简单算法知识的使用及输入输出的用法

PS:方式方法有多种,小朋友们只要能够达到题目要求即可!

11-20 06:34