博客园第四次作业
1.实验代码(计算阶乘和)
#include<stdio.h> int main() { int i,j,sum,x,n; sum=0; scanf("%d",&n); for(i=1;i<=n;i++){ x=1; for(j=1;j<=i;j++) x=x*j; sum=sum+x; } printf("%d",sum); return 0; }
2 设计思路
(1)文字描述
第一步:定义整形变量i,j,sum,x,n,分别用于存和,和两次循。
第二部:设计外层循环控制1的阶乘加2加3加到n的阶乘,内层循环用于计算1的阶乘的值,二的阶乘的值,一直到n的阶乘的值。
(2)流程图
3.本题调试过程碰到问题及解决办法
分析错误:一开始检查好几遍没有发现哪里错了,循环嵌套用的也很对,把代码打入devc++中设置断点,一步一步运行程序查看程序的各个变量的情况发现我x一开始赋值为0,那么就会使接下来的阶乘运算都为零,毫无意义。应该把x赋值为1。可能是惯性思维,一般变量赋值都给初始化成0了。
1.实验代码(打印九九口诀表)
#include<stdio.h> int main(void) { int n,i,j; scanf("%d",&n); for(i=1;i<=n;i++){ for(j=1;j<=i;j++) printf("%d*%d=%-4d",j,i,i*j); printf("\n"); } return 0; }
2 设计思路
(1)文字描述
第一步:观察分析题目可知要运用两次循环,外层循环控制行数,内层循环控制每行输出的东西。
第二部:有整体的思路之后,就是设置变量,注意到输出的格式,每个乘法口诀相隔为4个单位距离,运用输出格式%-4d来控制。
(2)流程图
3.本题调试过程碰到问题及解决办法
错误分析:经过pta检查为格式错误,在devc++中发现换行的时机不对,不是每次做完乘法都要换行,发现printf(“|n”)的位置不对,不应该在内层循环的大括号里,程序应该是当内层循环结束后,也就是一行的所有乘法算完后进行换行。所以应该是在内层循环与外层循环直接加入换行语句才对。所以去掉大括号即可。
二、总结和学习进度条
1、总结这几周所学内容、遇到的问题以及解决方法。
这两周老师带我们回顾了数据类型和表达式,还稍微学了一点数组的知识。对于数据类型:更加了解了数据的输入输出,类型转换,还有表达式里面的各种不同的类型,这些知识可以帮助我们是自己的程序更加简化,减少代码行数。但是我好像学的并不怎么好,主要是这些知识太零碎,小知识点很多,需要抽时间记忆。以后可以在在睡前看一看书。或许这些问题就迎刃而解了!
2、点评3个同学的本周作业(在作业中给出被点评同学博客的超链接!超链接!)
3、请用表格和折线图呈现你这几周的代码行数和时间、博客字数和时间、涉及的知识点。