for循环对新手来说(死也要学会),不然你就考不过CSP,NOIP……。
for循环的结构式是:for(定义变量;运算条件;运算){
……
}
接下来是输入一个一维数组滚名思意就是一条线储存
#include<iostream>
using namespace std;
int main(){
int a[100];
for(int i=1;i<=100;i++){
cin>>a[i];
}
return 0;
}
循环执行过程为:
求解表达式1;
求解表达式2。若其值为真,则执行 for 语句中指定的内嵌语句,然后执行第3步;若表达式2值为假,则结束循环,转到第5步;
求解表达式3;
转回上面第2步继续执行;
循环结束,执行 for 语句下面的语句。
执行过程中,“表达式1”只执行一次,循环是在“表达式2”“表达式3”和“内嵌语句”之间进行的。
那有二维的吗?我告诉你,有!看:
1 | 1 | 1 | 1 | 1 |
1 | 1 | 1 | 1 | 1 |
1 | 1 | 1 | 1 | 1 |
1 | 1 | 1 | 1 | 1 |
1 | 1 | 1 | 1 | 1 |
你也可以理解为表格,这个二维的列表里面都是1,但是你也可以存储a,A,1,0.1就是字母符号数字都行,就是你得定义成相对应的,比如说我要存储一个小数:
float/double a[100]={0.1,0.2.……};
#include<iostream>
using namespace std;
int main(){
int a[100][100];
for(int i=1;i<=100;i++){
for(int j=1;j<=n;j++){
cin>>a[i][j];
}
}
return 0;
}
这里我们举些例子:
斐波那契:
#include<iostream>
using namespace std;
int main(){
int a[100];
a[1]=0;
a[2]=1;
for(int i=1;i<=100;i++){
cin>>a[i];
}
for(int i=3;i<=100;i++){
a[i]=a[i-1]+a[i-2];
}
return 0;
}
上面两次循环是初始化和递推;
递推:
与递归不同,他没有“归”(回溯)。
递推就是一条路走到底,不回溯。
a[i]=a[i-1]+a[i-2]
假如a[i-2]=0,a[i-1]=1;那么a[i]=0+1=1