FOR嵌套循环ppt课件

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

void main()
/*a,b,c代表百位、十位、个位*/
{int x,a,b,c,num=0;
/*num存放满足条件的数的个数,注意num要赋初值*/
for(x=100;x<=999;x++)
{ a=x/100;b=x/10%10;c=x%10;
if(a!=b&&a!=c&&b!=c)
{ num++;
/*为求下一个要加的数据做准备*/
}
printf("s=%f\n",s); }
循环结构程序. 设计举例
16
【例11】输入任意一个正整数,将其逆序输出 ,例如输入1234,输出4321。
include "stdio.h" void main() {long y,n; scanf("%ld",&y); while(y!=0)
.
12
例9: 裴波那契数列的第1、2项分别为1、1,以后 各项的值均是其前两项之和。求前30项菲波那契 数。
编程方法: “递推法”
所谓递推法就是从初值出发,归纳出新值与旧 值间的关系,直到求出所需值为止。新值的求出 依赖于旧值,不知道旧值,无法推导出新值。数 学上递推公式正是这一类问题。
for 语句 .
1235
#include "stdio.h"
void main()
{float s=0,f1=2,f2=1,f=1,t,n; /*累加器赋初值*/
for(n=1;n<=10;n++)
{s=s+f*f1/f2;
/*累加器当前值=累加器原来的值+新的要加的数据*/
f=f*(-1);t=f2;f2=f1;f1=f1+t;
} .
1 12 123 1234 1234 123 12 1
6
例6 编程输出下面的数字金字塔(1到9 )。
1 121 12321 .….. 12345678987654321
第五. 章 练习
7
main() { int i,j,k,t;
for(i=1;i<=9;i++) {for(j=1;j<=10-i;j++) printf(" "); for(k=1;k<=i;k++) printf("%d",k); for(t=1;t<=i-1;t++) printf("%d",i-t); printf("\n"); }
注意f1、f2、 f3、x 的类型
printf(" %ld\t%ld\t ", f1,f2);
for(k=3;k<=30;k++)
{ f3=f1+f2;
printf(" %ld\t ",f3);
f1=f2; f2=f3;
递推
} }
for 语句 .
15
循环结构程序设计举例
【例10】 求 s2358... 求 前 1 0 项 之 和
.
4
例4 显示右侧图形
main() { int i,k,j;
for(i=1;i<=4;i++) { for(k=1;k<=4-i;k++) printf(" "); for(j=1;j<=i;j++) printf("* "); printf("\n"); }
getch(); }
.
* ** *** ****
}
.
8
例7 用0--9这十个数字可以组成多少无重复 的三位数?
编程方法: “穷举法” 按问题本身的性质,一一列举出该问题
所有可能的解,并在逐一列举的过程中,检 验每个可能解是否是问题的真正解,若是, 我们采纳这个解,否则抛弃它。对于所列举 的值,既不能遗漏也不能重复。
for 语句 .
9
#include "stdio.h"
第五章 课. 后思考
11
main() { int m,w,c;
for(m=0;m<=16;m++) for(w=0;w<=25;w++) for(c=0;c<=50;c++)
if(3*m+2*w+c==50&&m+w+c==30) printf("m=%d w=%d
c=%d\n",m,w,c); getch(); }
{n=y%10; printf("%ld",n); y=y/10; } }
循环结构程序. 设计举例
17
【例12】猴子第一天摘下若干个桃子,当即吃了 一半,又多吃了一个。以后每天早晨猴子都吃掉 前一天剩下的一半多一个。到第5天时,猴子再 去吃桃子时发现只剩下1个桃子。问第一天猴子 摘了多少个桃子?
#include "stdio.h" void main() {int x=1,n; for(n=4;n>=1;n--)
13
f1--第一个数 f2--第二个数 f3--第三个数 f1=1; f2=1; f3=f1+f2;
以后只要改变f1,f2的值,即可求出下一个数. f1=f2;f2=f3; f3=f1+f2;
递推
for 语句 .
14
参考程序:
void main() {long f1=1, f2=1, f3; int k;
循环嵌套结构
.
1
例1 显示右侧图形
main() { int i;
for(i=1;i<=5;i++) printf("* "); getch();
}
*****
.
2
Biblioteka Baidu
例2 显示右侧图形
main() { int i,j;
for(i=1;i<=4;i++) {for(j=1;j<=5;j++) printf("* "); printf("\n"); }
printf("%5d",x);
}
}
printf("\nnumber=%d",num);
}
for 语句 .
10
例8.以下问题可以用穷举法编程
某旅行团有男人、女人和小孩共30人,在 纽约一家小饭馆里吃饭,该饭馆按人头收 费,每个男人收3美元,每个女人收2美元, 每个小孩收1美元,共收取50美元。男人、 女人和小孩各有都少人?共有多少组解。
getch(); }
***** ***** ***** *****
.
3
例3 显示右侧图形
main() { int i,j;
for(i=1;i<=4;i++) {for(j=1;j<=i;j++) printf("* "); printf("\n"); }
getch(); }
* ** *** ****
5
例5 显示右侧图形
main() { int i,j;
for(i=1;i<=4;i++) {for(j=1;j<=i;j++) printf("%d ",j); printf("\n\n"); }
for(i=1;i<=4;i++) {for(j=1;j<=5-i;j++) printf("%d ",j); printf("\n\n"); }
相关文档
最新文档