循环嵌套 PPT

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
{(1<=k<=15),求满足sn>k的最小n。
n++; p=p*1.015; } printf("%d",n);
课后练习:
❖ [NOIP 2002普及组第一题]已知: sn=1+1/2+1/3+…+1/n.显然对于任意一个整数K,当 n足够大时,sn>k。现给出一个整数K(1<=k<=15), 求满足sn>k的最小n。
内层
printf(“*”);
printf(“\n”);
}
变式1:打印如下图形
* ** *** **** *****
❖ 分析:
第1行打印1个* 第2行打印2个* … 第5行打印5个*
for(i=1;i<=5;i++) { 打印i个*; printf(“\n”); }
❖ 用变量i控制行数。
❖ 用变量j控制每行 打印*的个数。
❖ 分析:重复打印9行星号 ❖循环条件:i=1 to 9 ❖ 循环体:打印一行星号
核心代码: for(i=1;i<=9;i++) { printf(“*********”);
printf(“\n”);
}
进一步分析:
核心代码: for(i=1;i<=9;i++) { printf(“*********”); printf(“\n”); }
课后练习:
❖ 求两个数a,b的最大公约数(a<b<=1000),
提示:此题有多种方法实现。
❖ 我国目前人口为13亿,且每年增长率为1.5%。 问多少年后人口能达到26亿。
❖ [NOIP 2002普及组第一题]已知: sn=1+1/2+1/3+…+1/n.显然对于任意一个整 数K,当n足够大时,sn>k。现给出一个整数K (1<=k<=15),求满足sn>k的最小n。
for(i=1;i<=5;i++) { for?(j=1;j<=i;j++) printf(“*”); printf(“\n”); }
变式2:打印如下图形
❖ 分析:
* *** ***** ******* *********
第1行打印5个空格,1个* 第2行打印4个空格,3个* 第3行打印3个空格,5个* …
进一步分析:每一行 重复打印9个星号 循环条件:j=1 to 9 循环体:打印一个星号
for(i=1;i<=9;i++) { for(j=1;j<=9;j++) printf(“*”); printf(“\n”); }
循环嵌套
循环嵌套
❖ 一个循环体内又包含另一个完整的循环结构, 称为循环的嵌套,内嵌的循环中还可以嵌套循 环即为多层循环。
4 357
1111. . . .
41 3 5 7 分子 flag:1,-1,1,-1… 分母 n: 1,3,5,7,... 项 item = flag/n
#include <stdio.h> #include <math.h> void main() {
double pi=0, item=1; int n=1, flag=1; do {
❖解法2[:N辗O转I相rP=除b法%a2;r0=b0%a2普及组第一题]已知: wshinle=(r1!+=01) /2+1/3+…+1/n.显然对于任意一个整 数{ bK=a,; 当n足够大时,sn>k。现给出一个整数K (a1=r<; =k<=15),求满足sn>k的最小n。
r=b%a; }
课后练习:
for(表达式1,表达式2,表达式3) 循环体;
表达式1:变量赋初值 表达式2:循环条件 表达式3:循环变量增值
例:打印下列图像(9*9的星号)
********* ********* ********* ********* ********* ********* ********* ********* *********
课后练习:
❖ 求两个数a,b的最大公约数(a<b<=1000),
提示:此题有多种方法实现。
❖解法1我:由国a~目1逐个前枚人举,口找到为第一1个3能亿同,时被且a、每b整年除的增数即长为最率大为公约1数.。5%。 问多少年后人口能达到26亿。 for(n=a;n>=1;n--)
if(b%n==0 && a%n==0){printf(“%d”,n);break;}
❖ 我国目前人口为13亿,且每年增长率为1.5%。 问多少年后人口能达到26亿。
❖解法:[此N题O解I法P较简2单0,0设2p=普13.及0,w组hil第e(p一<2题6)执]行已循环知,另:设n=0;用于累加年。 intsnn=0=; 1+1/2+1/3+…+1/n.显然对于任意一个整 fwlhoial数te(Kpp=<,1236;)当n足够大时,sn>k。现给出一个整数K
循环嵌套
主 讲:曹 毅
几种循环的比较
❖ for和while先判断循环条件后执行循环体,dowhile语句先执行循环体后判断循环条件。
❖ while、do-while、for可以相互替换使用。 ❖ 通常使用情况
▪ while语句多用于不需要赋初值或循环次数不定的 情况。
▪ for语句多用于要赋初值或循环次数固定的情况。 ▪ do-while语句多用于至少要运行一次的循环控制
解法:此题关键在于理解题意。满足sn>k的最小n;
int k,n=0;
double sn=0; scanf("%d",&k);
跟踪变量法:k=2
while(sn<=k)
{
n++;
sn=sn+1.0/n;
}
printf("%d",n);
【练习】用格里高利公式求π的近似 值。要求精确到最后一项的绝对值 格里高利公式小为于: 1e-61。111....
说明:
⑴ 嵌套的原则: 不允许交叉
⑵ 外层循环一for次(i,=1内;i<层=9循;i+环+)一遍。
{
for(j=1;j<=9;j++)
外层
内层
printf(“*”);
printf(“\n”);
}
循环嵌套
⑵ 外层循环一次,内层循环一遍。
for(i=1;i<=9;i++)
{
外层
Leabharlann Baidu
for(j=1;j<=9;j++)
pi = pi+item; n = n+2; flag = -flag; item = flag*1.0/n; }while(fabs(item)>=1e-6);
pi=pi*4; printf("pi=%lf\n", pi); }
大家有疑问的,可以询问和交流
可以互相讨论下,但要小声点
回顾知识
for语句
相关文档
最新文档