在C++语言部分,循环、数组和函数可以说是最最最最最常用的,函数还没学,先讲讲数组与循环
数组和循环都很常用,也都可以实现一些做不到的东西。
比如让你定义1000个变量,让你求1000的阶乘(这个要高精度)。
本期以习题为主。
1、与指定数字相同的数的个数
【输入】
输入包含三行:
第一行为n,表示整数序列的长度(n≤100);
第二行为n个整数,整数之间以一个空格分开;
第三行包含一个整数,为指定的数字m。
【输出】
输出为n个数中与m相同的数的个数。
【输入样例】
3
2 3 2
2
【输出样例】
2
这个自然要数组了。
有两种做法,一种效率高,另一种占空间少。
记得看数据范围!
第一种(效率高):
停停停!
为什么要叫停呢?
看看这个:
这数据也太太太太太大了吧!
所以说这种做法不成立
那就另一种:
#include<bits/stdc++.h>
using namespace std;
int n,m,a[101],sum;
int main() {
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i];
}
cin>>m;
for(int i=1;i<=n;i++)
{
if(a[i]==m)
sum++;
}
cout<<sum<<endl;
return 0;
}
这种还是正确了,我们看到代码中用了两个循环,还用了累加器,当然,数组也没少。
好,下一题。
2、陶陶摘苹果
【题目描述】
陶陶家的院子里有一棵苹果树,每到秋天树上就会结出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
很简单对不对,这个题我见过也做过无数遍了,与上一题难度差不多,就是有个30cm的板凳,加上身高就行了。
代码:
#include<bits/stdc++.h>
using namespace std;
int n,m,a[101],sum;
int main() {
n=10;
for(int i=1;i<=n;i++)
{
cin>>a[i];
}
cin>>m;
for(int i=1;i<=n;i++)
{
if(a[i]<=m+30)
sum++;
}
cout<<sum<<endl;
return 0;
}
其他题
这个网站里有很多类似的题,大家可以去做做。
传送门
是数组和循环两个部分
下期预告
函数