C语言程序设计任务3 数的阶乘计算主讲:朱清妍目 录CONTENTS目 录CONTENTS任务陈述C语言程序设计本次任务是实现计算一个数的 阶乘,例如n!=1234…..n。编写程序,让用户输入n,然后计算并输出n!。运行结果目 录CONTENTSC语言程序设 计for(表达式1;表达式2;表达式3){ 循环体语句;}循环变量赋初值循环体循环条件修改循环变量的值for循环语句一般形 式for循环语句的一般形式C语言程序设计表达式1;for(;表达式2;表达式3){ 循环体语句;}省略表达式1分号要保留C 语言程序设计for(表达式1;表达式2;表达式3){ 循环体语句;}三个表达式都可以省略 for循环语句的一般形式C语言程 序设计for(;;){ 循环体语句;}不能省略 for循环语句的一般形式省略三个表达式for循环语句的执行过程C语言程序设 计(1) 执行表达式1(2)执行表达式2,若其值为真(非0),则执行循环体语句,然后执行(3);若其值为假(0),则结束循环,转到 (5)。(3)执行表达式3流程图表达式2循环体语句FTfor(表达式1;表达式2;表达式3){ 循环体语句;}表达式1表达 式3for语句的下一条语句(4)回到(2)继续执行(5)循环结束,执行for语句下面的语句最简最单的应用形式C语言程序设计for( 循环变量赋初值;循环条件;循环变量增量) 循环体语句for(表达式1;表达式2;表达式3){ 循环体语句;}一般 是赋值语句,用来给循环控制变量赋初值一般是一个关系表达式,决定什么时候退出循环定义循环控制变量每一次循环后按什么方式变化目 录CO NTENTS精典案例C语言程序设计【例4-5】编写程序,用do…while语句计算从1加到100的值。流程图分析:1、本题的数学表 达式为: 1+2+3+…+1002、定义: sum为该表达式的和(初值为0) i 为循环变量(1~100)3、循环计算表达式: sum=sum+i开始定义变量:i,sum=0i=1sum=sum +ii<=100TF输出sum结束i++精典案例C语言程序设计流程图#include int main(){ i nt i,sum=0; for(i=1;i<=100;i++) sum=sum+i; printf("%d\n",sum ); return 0;}程序C语言程序设计for(表达式1;表达式2;表达式3){ 循环体语句;}三个表达式都可以省略 几点说明for(;;){ 循环体语句;}不能省略 几点说明C语言程序设计for(i=1;i<=100;i++) su m=sum+i;i=1;while(1) { sum=sum+i; i++;}for(i=1;i<=100;) { sum= sum+i; i++;}i=1;for(;i<=100;i++) sum=sum+i;省略表达式1,表示不对循环控制变量赋 初值,为了程序的正确性,可在for语句之前对循环变量赋初值省略表达式2,相当于while语句中的循环条件为1。若不做其他处理时便成 了列循环,建议在循环体内增加if语句控制循环的退出省略表达式3,则不对循环控制变量进行操作,为了程序的正确性,可在循环体中加入修改 循环控制变量的语句几点说明C语言程序设计for(i=1;i<=100;i++) sum=sum+i;i=1;for(;i<= 100;) { sum=sum+i; i++;}i=1;while(i<=100) { sum=sum+i; i++;}省 略表达式1和表达式3 相当于C语言程序设计for(i=1;i<=100;i++) sum=sum+i;i=1;while(i <=100) { sum=sum+i; i++;}for(表达式1;表达式2;表达式3){ 循环体语句;}表达式1;wh ile(表达式2){ 循环体语句; 表达式3 ;}相当于相当于几点说明几点说明C语言程序设计for(i=1;i<= 100;i++) sum=sum+i;i=1;for(;;) { if(i<=100) sum=sum+i; e lse break; i++;}i=1;while(1) { if(i<=100) sum=sum+i; els e break; i++;}省略三个表达式在相应位置添加相关语句保证程序的正确性相当于几点说明C语言程序设计sum=0;f or(i=1;i<=100;i++) sum=sum+i;i++;for(sum=0;i<=100;i++) su m=sum+i;表达式1可以是其他表达式C语言程序设计sum=0;for(i=1;i<=100;i++) sum=sum+ i;for(sum=0,i=1;i<=100;sum=sum+i,i++) 几点说明表达式1和表达式3可以是逗号表达式说明C语言 程序设计for(i=0;(c=getchar()) != ’\n’;i += c);for(;(c = getchar()) != ’\n’;) printf("%c",c);表达式2一般是关系表达式或逻辑表达式,也可以是凑数值表达式或字符表达式,只要其 值非零,就执行循环体应用场合C语言程序设计可用于解决任何涉及需要重复操作的实际问题,特别是指定范围或能确定循环次数的实际问题。小结 C语言程序设计while,do...while,for循环语句都可以相互转换。循环次数是固定的:for循环语句循环必须要执行一次: do...while循环语句 其他情况:while循环语句目 录CONTENTS任务描述C语言程序设计本次任务是实现计算一个数的阶 乘,例如n!=1234…..n。编写程序,让用户输入n,然后计算并输出n!。任务实施流程(1)分析解决该任务的步骤、方法 (2)把解决该任务的步骤(算法)用流程图进行描述(4)测试执行程序C语言程序设计(3)根据流程图编写程序实施步骤第一步,定义3个变 量: n,i,factor,变量factor赋初值为1;第二步,输入n的值;第五步,factor=factori;C语言程序设计 第四步,判断i<=n,为真执行第五步,为假执行第七步;流程图第六步,i++;再转去执行第四步第七步,当i<=n为假,结束循环,执行 循环后的语句;第八步,输出n!,即变量factor的值,结束。开始i=1factor=factorii<=nTF输出n的阶乘结束 定义变量:n,i,factor=1i++输入n的值第三步,i=1;编写程序C语言程序设计#include int main(){ int n,i,factor=1; printf("请输入这个数:"); scanf("%d",&n); for(i=1;i<=n;i++) factor=factori; printf("%d!=%d\n",n,factor); return 0;}程序流程图测试程序C语言程序设计运行结果C语言程序设计再见 |
|