2014第三章实验4for语句及嵌套综合学生问题教程.doc

2014第三章实验4for语句及嵌套综合学生问题教程.doc

2014第三章实验4for语句及嵌套综合学生问题教程

PAGE 1 数据结构(C++版) C++程序设计(第2版) 求1!+2!+3!...+10!的和。(课本P66页四、5) 1!+2!+3!...+30!呢,程序有什么区别? #includeiostream.h void main() { int n=1,s=1,total=0; while(n=20) { for(s=1;n=1n=20;n--) s=s*n; total=total+s; n++;} couttotal=totalendl; } 问题:老师,程序没有错误,但是执行不出结果,帮我看看原因! 只能说编译没有错误,你程序死循环,错大了。外循环循环变量是n,竟然内循环改变这个循环变量,请问怎么结束?修改如下 #includeiostream.h void main() { int i,n=1,s=1,total=0; while(n=10) { for(s=1,i=n;i=1;i--) s=s*i; total=total+s; n++;} couttotal=totalendl; } 1、求1!+2!+3!+…+10!的和。(课本P66页四、5) 1!+2!+3!...+20!呢?程序有什么区别? #include iostream using namespace std; int main( ) { int sum=0,a,b,c=1; for(a=1;a=10;a++) { for(b=a;b=1;b--) //是这个地方么 { c=c*b; } sum=sum+c; } cout1+2!+3!++10!=sumendl; }分析:一开始这样做为什么不对 把c=1放到内循环for之前 #includeiostream.h void main () { int sum=0,i,j,k=1; for(i=1;i=10;i++) {for(j=i;j=1;j--) {k=k*j;} sum=sum+k;} cout\n1!+2!+3!+4!+5!+6!+7!+8!+9!+10!=sumendl;} 内层循环的累计变量在外层循环之前赋初值是致命的。修改后的程序如下: #includeiostream.h void main () { int sum=0,i,j,k; for(i=1;i=10;i++) {k=1; for(j=i;j=1;j--) {k=k*j;} sum=sum+k;} cout\n1!+2!+3!+4!+5!+6!+7!+8!+9!+10!=sumendl;} 问题:一开始编这个程序的时候是像下面这样编的,可是出来的不是正确的答案,并且将10改成20后答案是一样的,这是为什么? #includeiostream.h void main() { int num=10,a,b,sum=0,factoria=1; for(b=1;b=num;b++) { for(a=1;a=b;a++) {factoria=factoria*a; } sum=sum+factoria; } cout1!+2!+3!++10!=sumendl; } 错误同上 1、求1!+2!+3!+…+10!的和。(课本P66页四、5) 1!+2!+3!...+20!呢?程序有什么区别? #includeiostream.h void main() { int a,b,m=1,sum=0; cout请输入\n; cina; for(a=1;a=10;a++) { for(b=1;b=a;b++) { m=m*b; sum=sum+m; } } coutsumendl; } 分析:不知道为什么会出来负值,能不能不用内外循环就可以做出来。 两个红色标注语句位置不对,一个m=1应该在内层for之前,另一个sum=sum+m; 应该在内层for之后 1、 #includeiostream.h void main() { int n,sum,i,j; n=0;sum=1;//应该放入内循环for之前 for(i=1;i=10;i++) { for(j=1;j=i;j++) sum=*j; //应该sum*=j; n=sum+n; } //这里应该有输出 } ( 注意:嵌套时语句的顺序。 老师:为啥加上红色部分就不对了呢? 1、求1!+2!+3!+…+10!的和。(课本P66页四、5) 1!+2!+3!...+20!呢?程序有什么区别? 析:一开始写的程序如下, void main() { int i,sum=0,m,a

文档评论(0)

1亿VIP精品文档

相关文档