流程控制二
循环语句
循环的开始条件
循环的控制条件
循环的结束条件
goto
无条件跳转,跳转到指定位置执行:标志位置
标志:通常用大写。
例:(SIGN:)注意冒号
while
当条件满足时执行循环体,
while (条件){
循环体
}
练习
1-100累加,和、奇数和、偶数和
#include<stdio.h>
int main(){
int a=1,i=1;
for(i=1;i<=100;i++){
a+=i;
}
printf("%d",a);
a=0;
for(i=1;i<=100;i++){
if(i%2==0)
a+=i;
}
printf("%d",a);
a=0;
for(i=1;i<=100;i++){
if((i+1)%2==0)
a+=i;
}
printf("%d",a);
return 0;
}
输入一个数,判断这个数是否为质数
do while
先执行循环体,后判断循环条件,满足继续循环,不满足跳出循环
do{
循环体
}while (条件);
for
for(初始化语句 ; 条件执行语句 ; 循环体结束语句){
循环体
}
执行for时,
初始化语句:整个循环只会先执行一次初始化语句,
条件执行语句:满足条件进行循环,不满足就结束循环。
循环体结束语句:执行完一次循环体后,会执行循环体结束语句
初始化语句 ; 条件执行语句 ; 循环体结束语句,都可以缺省
break
在循环中若存在break
则表示跳出当前循环。与switch中的含义不同
continue
直接开始下一次循环
作业
1、计算1 ^ 2 +2 ^ 2 + 3 ^ 2 + 4 ^ 2 + … + n ^ 2
#include<stdio.h>
int main(){
int a=0;
int sum=0;
int i=0;
scanf("%d",&a);
for(i=1;i<=a;i++){
sum+=i*i;
}
printf("%d\n",sum);
return 0;
}
2、输⼊20个学⽣的成绩,输出成绩不及格的⼈数
若仅仅考虑完成“统计不及格人数”的功能,直接循环输入20次,每次输入完成立马判断成绩及格与否,用一变量统计人数即可
#include<stdio.h>
int main(){
int stu[5];
int i=0;
int flag=0;
for(i=0;i<5;i++){
scanf("%d",&stu[i]);
}
for(i=0;i<5;i++){
if(stu[i]<60){
flag+=1;
}
}
printf("%d\n",flag);
return 0;
}
3、打印9×9乘法表
#include <stdio.h>
int main(){
int i,j,k;
for(i=1;i<=9;i++){
for(j=1;j<=i;j++){
k=i*j;
printf("%d*%d=%2d ",i,j,k);
}
printf("\n");
}
return 0;
}
4、打印 i⾏ j列的*,如i=4;j=5输出
#include<stdio.h>
int main(){
int row;
int col;
printf("row: column:\n");
scanf("%d %d",&row,&col);
printf("row:%d,column:%d\n",row,col);
for(int i=1;i<=row;i++){
for(int j=1;j<=col;j++){
printf("*");
}
printf("\n");
}
return 0;
}
5、猴⼦摘桃n个,第⼀天吃了⼀半加⼀个,第⼆天吃了剩下⼀半加⼀个,以后每天如此,到第⼗天 只剩下⼀个,计算求n
3070第一天:剩1534,第二天:剩766,第三天:剩382,第四天:剩190,第五天:剩94,第六天:剩46,第七天:剩22,第八天:剩10,第九天:剩4,第十天:剩1
#include<stdio.h>
int main(){
int last=1;
for(int i=0;i<10;i++){
last=(last+1)*2;
}
printf("%d\n",last);
return 0;
}
6、一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
#include<stdio.h>
int main(){
double h=100;
double l=100;
for(int i=1;i<=10;i++){
h=h/2;
l=l+h*2;
}
printf("length:%lf\n",l);
printf("hight:%lf\n",h);
return 0;
}