006嵌套循环结构程序设计.docx
《006嵌套循环结构程序设计.docx》由会员分享,可在线阅读,更多相关《006嵌套循环结构程序设计.docx(6页珍藏版)》请在冰豆网上搜索。
006嵌套循环结构程序设计
一、什么是循环的嵌套
一个循环体内包含了另一个完整的循环,就叫循环的嵌套。
三种循环——while、do~while、for可以自相嵌套也可以相互嵌套。
二、几种简单的嵌套循环格式
1.while
while()
{……
while()
{
……
}
}
2.do~while
do
{
……
do
{
……
}while();
}while();
3.for
for(;;)
{
……
for(;;)
{
……
}
}
4.嵌套循环控制变量值的变化规律
#include
intmain()
{
inti,j;
for(i=1;i<=2;i++)
for(j=1;j<=3-i;j++)
printf(“i=%d,j=%d\n”,i,j,z);
return0;
}
i=1,j=1
i=1,j=2
i=1,j=3
i=2,j=1
i=2,j=2
i=2,j=3
例:
打印1000以内所有完数。
#include
intmain()
{
intn,i,s;
for(n=1;n<=1000;n++)
{s=0;
for(i=1;i<=n/2;i++)
if(n%i==0)
s+=i;
if(n==s)
printf(“%d\n”,n);
}
return0;
}
例:
百钱百鸡。
100元钱买一百只鸡。
公鸡3元/只,母鸡2元/只,小鸡1元/2只。
问购买方案。
x+y+z=100
3*x+2*y+0.5*z=100
1124681012……98
12246810……98
13246810……98
…………………………
148246810……98
21246810……98
#include
intmain()
{
intx,y,z;
for(x=1;x<=33;x++)
for(y=1;y<=48;y++)
for(z=2;z<=98;z+=2)
if(x+y+z==100&&3*x+2*y+0.5*z==100)
printf(“公鸡%d只,母鸡%d只,小鸡%d只\n”,x,y,z);
return0;
}
例:
打印图案:
*
***
*****
*******
printf(“*”);
printf(“”);
空格
*
第一行:
1
36
1
第二行:
2
24
3
第三行:
3
12
5
第四行:
4
0
7
#include
intmain()
{inti,j,k;
for(i=1;i<=5;i++)
{
for(j=1;j<=2*(4-i);j++)
{printf(“”);}
for(k=2*i-1;k>=1;k--)
printf(“*”);
printf(“\n”);
}
return0;
}
三、break语句
break用于循环,功能是提前结束break所在循环体的循环。
使用格式:
break;
例:
在100以内找到1+2+3+……+n之和不大于500的最大的n
for(i=1,s=0;i<=100;i++)
{s+=i;
if(s>=500)
break;
}
四、continue语句
continue用于循环,功能是跳过本次循环,直接进入下一次的循环。
例:
打印100以内的所有偶数。
{
for(i=1;i<=100;i++)2
{
if(i%2!
=0)
continue;
printf(“%d\t”,i);
}
}
五、作业
六、预习
数组
一、一元纸币换1、2、5分的硬币,要求硬币总数为50枚,共有多少种换法。
二、鸡兔同笼,总头数为30,总脚数为90,编程计算鸡、兔各多少只。
三、有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?
都是多少?
四、知abc+cba=1333,其中a,b,c均为一位数,编程求出满足条件的a,b,c所有组合。
五、打印图案:
A
BBB
CCCCC
DDDDDDD
EEEEEEEEE
FFFFFFFFFFF
GGGGGGGGGGGGG