案例-累加和阶乘计算.
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
虑数值范围,避免溢出。没把握
的情况下,可以先将数据类型定 义为高级别的类型,再换成低级 别类型,将结果进行对比,选择 最适合的类型。
调试程序的过程是多方面的。
【项目六
累加和阶乘计算】
说明:for语句使用注意事项
(1)for语句中的各表达式都可省略,但分号间隔符 不可少。 for (;表达式;表达式)语句; (2) 循环体可以是空语句。 for(表达式;;表达式)语句; 例 3.14 #include <stdio.h> for (表达式;表达式;)语句; void main( ) for (;;)语句; ( 3) for 语句可以嵌套使用,构成多重循环。 { int n=0; printf("input a string:\n"); for(;getchar()!='\n';n++) ; printf("%d",n); }
【项目六 累加和阶乘计算】
例3.15 for的三重循环的使用:找出所有的三位数,它和它 的各位数字的立方和正好相等。例如:153=13十53十33所以, 153就是满足条件的三位数。 分析:设所求的三位数,其百位数字是i,十位数字是j,个 位数字是k,显然应满足:i*i*i+j*j*j+k*k*k=100*i+10*j+k。 程序如下: 程序运行结果为 main() 153 370 371 407 { int i,j,k; for(i=1;i<=9;i++) for(j=0;j<=9; j++) for(k=0;k<=9;k十十) if(i*i*i+j*j*j+k*k*k==100*i+10*j+k) printf(”%d%d%d ”,i,j,k); }
开始
编
main()
程
初始化 n=1
N
program
{ long acc=1;
int n; for(n=1;n<=10;n++) acc=acc*n; printf(“%ld”,acc);
n<=10?
Y
acc=acc*n
n++
getch();
}
【项目六
输出acc
累加和阶乘计算】
总结:
涉及数据计算时,一定要考
初值;终值;变化规律;
=0
表达式1
表达式2
≠0
语句
表达式3
【项目六
累加和阶乘计算】
开始 3)语句; for(表达式1;表达式2;表达式
算
法
初始化 n=1
N
algorithm
for(n=1;n<=100;n++)
sum=sum+n;
n<=100?
Y
sum=sum+n
n++
输出sum
【项目六 累加和阶乘计算】
【项目六
累加和阶乘计算】
数据结构
data structure
+ 算
法
algorithm
数据类型data type
acc 积 乘数
定义变量variant
n
【项目六
累加和阶乘计算】
开始
算
法
N
初始化 n=1 n<=10?
Y
algorithm
acc
n
积wk.baidu.com
乘数
acc=acc*n
n++
输出acc
【项目六 累加和阶乘计算】
1*9= 9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
【项目六
累加和阶乘计算】
数据结构
data structure
+ 算
法
j=1 ( i=1)
i j
列 行
algorithm
用i*j来表示
i=1,j=1
i=1~2, j=2 i=1~3, j=3 i=1~4, j=4 i=1~5, j=5
1*5= 5 2*5=10 3*5=15 4*5=20 5*5=25
1*6= 6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36 1*7= 7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8= 8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
Y
algorithm
sum
n
和
加数
sum=sum+n
n++
输出sum
【项目六 累加和阶乘计算】
算
sum n 加数n
法
和 加数
N
n=1
algorithm
n<=100
Y
循环体
n++
初值:1
终值:100
变化规律:递增1
【项目六 累加和阶乘计算】
1、for语句 for语句的一般形式: for(表达式1;表达式2;表达式3)语句;
【项目六 累加和阶乘计算】
小
结
重点 1. for语句的功能和使用 掌握 2. for语句的嵌套使用
1. 找到循环的规律 难点 2. for语句嵌套使用
【项目六
找出规律
j=2 ( i=1,i=2) j=3 ( i=1,i=2,i=3) j=4 ( i=1,i=2,i=3,i=4) 外层 (j=1;j<=9;j++)
内层 ( i=1;i<=j;i++ )
累加和阶乘计算】
main() { int i, j; for(j=1;j<=9;j++) { for(i=1;i<=j;i++) printf(“%d*%d=%2d ”, i , j , i*j); printf(“\n”); } getch(); }
开始
编
main()
程
初始化 n=1
N
program
{ int sum=0,n;
n<=100?
Y
for(n=1;n<=100;n++)
sum=sum+n;
sum=sum+n
n++
printf(“%d”,sum);
getch(); }
【项目六
输出sum
累加和阶乘计算】
问题:
(1)计算1+2+3+……+100 (2)计算10! 10!=1*2*3*……*9*10
【项目六 累加和阶乘计算】
课堂练习
输出9*9乘法表(如图)
用i*j来表示
1*1= 1
(i=1,j=1) (i=1,j=2) (i=2,j=2) (i=1,j=3) (i=2,j=3) (i=3,j=3)
1*2= 2 2*2= 4
1*3= 3 2*3= 6 3*3= 9 1*4= 4 2*4= 8 3*4=12 4*4=16
C
语言程序设计
项目六 累加和阶乘计算
1
问题:
(1)计算1+2+3+……+100 (2)计算10!
【项目六
累加和阶乘计算】
数据结构
data structure
+ 算
法
algorithm
数据类型data type
sum 和 加数
定义变量variant
n
【项目六
累加和阶乘计算】
开始
算
法
N
初始化sum=0 n=1 n<=100?