循环结构

在C语言11和13中我们已经了解了分支结构,现在我们来了解一下循环结构

高斯求和

高斯求和(计算1+2+3+4+5+…+100的和)是一个非常经典的数学问题,我们能不能在c语言中也解决一下这个问题呢?

方法1:高斯公式

我们可以利用高斯公式非常轻松的计算出它的结果。

高斯公式:(首项+末项)x项数/2

1
2
3
4
5
6
7
8
9
#include<stdio.h>
int main(){
int a = 1;//a为首项1
int b = 100;//b为末项100
int sum;
sum =(a+b)*100/2;//高斯公式
printf("%d\n",sum);
return 0;
}

累加

我们也可以使用累加的方法来计算

1
2
3
4
5
6
7
8
9
10
#include<stdio.h>
int main(){
int sum=0;//定义sum来存放累加结果
for(int i=1;i<=100;i++){//定义i为一个不断增加的量
sum=sum+i;//用sum来存放每次变化后的i
//注:sum=sum+i也可以写成sum+=i的形式
}
printf("%d\n",sum);
return 0;
}

for循环

我们可以看见上述代码中使用了一个新的函数for函数。

在c语言中for函数可以实现循环。具体原理如下。

for循环的基本结构

1
2
3
for (初始化语句;条件判断语句;条件控制语句){
循环体语句;
}

它的执行流程是这样的

1
2
3
4
5
6
7
Ⅰ、首先执行初始化语句。

Ⅱ、执行条件判断语句,如果结果是true,执行循环体语句;如果结果是false,跳出for循环。

Ⅲ、执行完循环体语句后,执行条件控制语句。

Ⅳ、按照步骤Ⅱ继续执行,直到跳出for循环。

在上面累加的过程中for循环先初始化i的值为1然后判断i的值是否小于等于100,如果结果为真则i自加一,接着执行sum=sum+i;然后判断自加1后的i是否小于等于100如此循环直到判断结果为假。