第六章:循环控制结构
一:顺序结构,分支结构,循环结构是程序结构的三种基本结构。任何复杂问题都可以用这三种基本结构编程实现。
二:循环结构分两种类型:当型循环和直到型循环。有for、while、do-while三种循环语句。
(1)for语句
for(变量初始化;循环控制条件;变量变化表达式)
{
循环体;
}
注意:条件成立则循环,不成立则结束循环。
(2)while语句
变量初始化
while(循环控制的条件)
{
循环体;
变量变化表达式;
}
注意:条件成立则循环,不成立则结束循环。
(3)do-while语句
变量初始化
do{
循环体;
变量变化表达式;
}while(循环条件);
注意:与前两个不同的是:无论条件是否成立,先执行一次循环,再判断条件。条件成立则循环,不成立则结束循环。
(4)赋出值放在循环语句之前,且挨着循环语句.
(5)举例:
输入n,计算并输出1+2+……+n的值
#include<stdio.h>
int main()
{
int i,n,s=0;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
s=s+i;
}
printf(‘’%d",s);
return 0;
}
三:注意
1.一般的,如果循环次数已知,则计数控制,用for;如果循环次数未知,则条件控制,用while
2. for,while后不加分号,若加
while(i<100);
i++;
此为死循环。
for(i=0;i<100;i++);
printf("%d",i);
此为延时
输出i=100
3.逗号
例如for(i=1,j=100;i<j ;i++,j--)
4.在循环内定义的变量,只能在循环语句中使用
for(int i=2;i<100;i+=2)
printf("%d",i);
5. EOF
是文件结束符,代表一个整型变量-1
也就是到一直不输入为止
6.累加求和问题初始化变量为0,累乘问题初始化变量为1。
7,sqrt是平方根的意思
8有时用数学函数
#include<math.h>
int x=pow(10,i-1);
表示10的i-1次方。
9.标准函数exit( ),
作用是终止整个程序的执行
但一般不要在作业平台上用。
10. floor向下取整 ceil向上取整
11.随机函数 rand()
magic=rand()% 100+1 代表生成一个1~100的随机数
四,嵌套循环,即循环加循环
如:画矩形
#include<stdio.h>
int main()
{
int m, n, p;
char q;
scanf("%d %d %c %d",&m, &n, &q, &p);
for(int i=1;i<=m;i++)
{
for(int j=1;j<=n;j++)
{
if(p==1||i==1||j==1||j==n||i==m)
printf("%c", q);
else
printf(" ");
}
printf("\n");}
return 0;
}
注意:在处理画图形这类问题时,要先分析符号与行和列的关系,判断循环的条件。
五. 3种语句:goto语句,break语句,continue语句
(1)goto语句:无条件转移到标号所标识的语句处去执行
(2)break语句:用于退出switch或一层循环结构 (3)continue语句:用于结束本次循环、继续执行下一次循环
注:当程序需要退出多重循环时,用goto语句比用break语句更直接方便。
六.可以解决的问题
①画图形,如画矩形,菱形,粘墙三角形
②判断一个数中有几个常数,如敲七,含k个3
③对一个数的处理:如数字反转;
对几个数的处理:如求最小公倍数,余数相同
对一组数的处理:如求和问题(注意要将scanf放到循环体中)
七,感受
从这一章开始,题目变得复杂了许多,有时还要转化为数学问题,要静下心,沉住气,认真想。实在不行就从模仿开始,一步一个脚印,加油!!