建议使用vm虚拟机安装mvs2010,在未来教育的下载中心下载mvs2010,不要去下完整包
设计循环结构程序
while循环结构
循环结构是结构化程序设计的基本结构之一,它与顺序结构、选择结构共同作为各种复杂程序的基本结构。
解决循环问题的基本步骤和方法
while语句的一般格式
while(表达式)
{
循环体语句组
}
while语句的应用
高斯求和算法
while循环结构的实现
int main()
{
inti=1,sum =0;
while(i <= 100)
{
sum +=i;
i++
}
printf(“sum=%d\n", sum);
return 0;
}
设置一个变量,让他每次+1。
设置一个求和变量
例题
用while循环来计算水仙花数
答案
#include <stdio.h>
int main (void)
{
int i = 100;
int a,b,c;
while(i<=999)
{
a=i/100;//百位
b=i/10%10;//十位
c=i%10;//个位
if(a*a*a+b*b*b+c*c*c == i)
{
printf("水仙花数:%d\n",i);
}
i++
}
return 0;
}
do....while语句的一般格式
do
{
循环体语句组;
}
while(表达式);
/*while行的分号不能缺省*/
do....while的应用
用do...while循环来计算0-100 内所有偶数的和。
解析
答案
#include<stdio.h>
int main()
{
int sum=0,i=2;
do
{
sum = sum +i;
i =i + 2;
}while(i<= 100);
printf("sum=%d\n",sum);
return 0;
}
do...while循环结构的说明
- do-while语句是先执行语句序列一次,后判断表达式的值
- 如果do-while语句的循环体部分是多个语句组成,则必须用左右大括号括起来
- 书写时不要忘记while圆括号后面有一个分号“;”
while和do...while的比较
for循环结构
for(表达式1;表达式2;表达式3)
{
循环体语句组;
}
for语句执行过程:
(1)先计算表达式1的值。
(2)再计算表达式2的值,若其值为真,
则执行循环体一次;否则跳转第(5)步
(3)然后计算表达式3的值。
(4)回转上面第(2)步。
(5)结束循环,执行for语句的后续语句。
for循环结构的说明
表达式1一般为赋值表达式,用于进入循环之前给循环变量赋初值,后面有“;”分隔。
表达式2一般为关系表达式或逻辑表达式,用于执行循环的条件判定,它与while、do-while循环中的表达式作用完全相同,后面用“;”分隔
表达式3一般为赋值表达式或自增(i=i+1 可表示成i++)、自减(i=i-1可表示成i--)表达式,用于修改循环变量的值
如果循环体部分是多个语句组成的,则必须用大括号括起来,使其成为一个复合语句。
for循环结构说明
实现
int main()
{
int i, sum =0;
for(i=1;i<= 100;i++)
{
sum +=i;
}
printf(“sum=%d\n”,sum);
return 0;
}
拓展
for(表达式1;表达式2;表达式3) //表达式1,2,3都可以省略,但是,分号不能省略!
{
循环体语句组;
}
拓展1
for语句的一般形式中的“表达式1”可以省略。但要注意省略表达式1时,其后的分号不能省略
#include<stdio.h>
void main()
{
int i=1, sum = 0;
for(;i<= 100; i++)
{
sum += i;
}
printf("sum= %d\n", sum);
}
拓展2
如果省略表达式2,即表示表达式2的值始终为真,循环将无终止地进行下去
#include<stdio.h>
#include<windows.h>
void main()
{
int i=1, sum = 0;
for(; ; i++)
{
sum += i;
sleep(100);//延时函数
printf("循环了%i次\n",i);
}
printf("sum= %d\n",sum);
}
拓展3
如果省略表达式3,也将产生一个无穷循环。因此,应另外设法保证循环能正常结束,可以将循环变量的修改部分(即表达式3)放在循环语句中控制。
#include<stdio.h>
#include<windows.h>
void main()
{
int i=1, sum = 0;
for(;;)
{
i++;
sum += i;
Sleep(100);//延时函数
printf("循环了%d次,此时的sum值为%d\n",i,sum);
}
printf("sum= %d\n",sum);
}
for循环结构的应用
题目:用for循环打印出1-10的平方答案{ int a,sum; for(a = 1;a <= 10;a++) { sum = a * a; printf("%d的平方时%d",a,sum); } return 0; }
break
break可以使程序运行时中途跳出循环体,即强制结束循环,接着执行循环体的后续语句。
出现位置:循环,Switch
break的语法格式:break;
带入代码讲解
int sum = 0; for(int i=1;i<=10;i++) { if(i == 5) { break;//更换if 的位置程序的结果不一样 } sum += i; sleep(400);//延时函数 printf("循环了%d次,此时的sum值为%d\n",i,sum); //if移动到此处 } printf("sum= %d\n",sum);
break语句的应用
自行查看有无break的区别
continue
结束当前循环,进入下一循环
遇到continue直接跳回i++continue应用
自行查看有无continue的区别
嵌套循环
嵌套结构的应用
横着是一个循环,竖着是一个循环
解析
行:变量inti,i从1-9循环变化
列:变量intj,j从1-9循环变化
输出:j,i,i*i一行输出完毕回车,进行下一行的输出答案
一个循环体内又包含另一个完整的循环结构,称为循环的嵌套。
内嵌的循环中还可以嵌套循环,这就是多层循环
三种循环:while循环、do-while循环和for循环可以互相嵌套。