博客园第四次作业

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、请用表格和折线图呈现你这几周的代码行数和时间、博客字数和时间、涉及的知识点。

 

 

 

 

 

posted on 2018-12-12 19:18  王肖12  阅读(227)  评论(8编辑  收藏  举报