Everyday English
To conquer the hard, one must master the easy; to achieve greatness, one must begin with the triviality.
天下难事,必作于易;天下大事,必作于细。
前言
这节课是入门的最后一节课了,下面我会带你接触一些简单的题目和算法,你准备好了吗?
数组
数组的概念
首先你得理解数组是什么?数是数字的意思,而组是多个元素组合在一起,好比一个装笔的抽屉,将笔分在了不同的格子里。
数组也分一维数组和二维数组,当然三维,四维也有,只不过我们通常情况下只会用到一维数组和二维数组。
一维数组有点像一条线,线上有很多点,每个点有不同的值,像下面的图一样:
一维数组有点像一条线,线上有很多点,每个点有不同的值,像下面的图一样:
数组的定义
知道了数组的概念,我们来看一看如何定义一个数组:
一维数组的定义方式如下:
二维数组的定义方式如下:
数组的下标
下标你可以理解为每个抽屉的编号,一维数组,从左至右依次编号,二维数组有行号和列号,在C++中,先行再列,既a[5][4]表示第五行,第四列的元素
注意:二维数组的下标是从0开始的 ,所以a[10]的一维数组下标其实是0-9。
for循环
循环是什么
循环的意思很好理解,就是重复执行某件事,大家应该都知道Scratch里的重复执行吧,而C++只是用另一种语言去编写这个循环,基本功能是一样的。
基本格式
比如下面这个for循环,一共执行了n次,你可以拿一张草稿纸模拟一下:
多重循环
for循环的里面/外面还可以在套一层for循环,当然更多层也可以,像Scratch一样:
在C++里就是:
那这个循环执行了多少次呢?答案是10x10x10=1000次,你懂了吗?
洛谷小课堂
陶陶摘苹果
思路点拨
这题要用到今天所学的数组与for循环,数组不要卡着数据开,稍微大一点,但不要过大。
可以这样(仅供参考):
AC:
#include<bits/stdc++.h>
using namespace std;
int a[15];
int main(){
for(int i=1;i<=10;i++){
cin>>a[i];
}
int n;
cin>>n;
int sum=0;
for(int i=1;i<=10;i++){
if(a[i]<=n+30){
sum++;
}
}
cout<<sum;
return 0;
}
最高的分数
思路点拨
这题要用到今天所学的数组与for循环,数组不要卡着数据开,稍微大一点,但不要过大。还要有一个求最大值的变量(ma),千万不要写成max,(ma=-1)
可以这样(仅供参考):
if(ma<=a[i]){
ma=a[i];
}
AC:
#include<iostream>
using namespace std;
int a[105];
int main(){
int n;
int ma=-1;
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
if(ma<=a[i]){
ma=a[i];
}
}
cout<<ma;
return 0;
}
总结
本节课我们学习了循环及数组的知识,从下节课起,我们讲初步解决一些实际问题,以及一些基础算法,我会选取一些洛谷有代表性的题目给大家讲解。
如果你能支持一下我,我十分感谢,最后认识一下,我是爱编程的喷火龙,我们有缘再见!