第三次作业

 

作业要求 :【https://edu.cnblogs.com/campus/hljkj/CS201801/homework/2359

第6次作业:7-1 求1到100的和:

1.代码:

#include<stdio.h>
int main()
{
    int i,sum;
    sum = 0;
    for(i = 1;i<=100;i++){
    sum = sum + i;    }
    printf("sum = %d",sum);        
    return 0;
 } 

2.解题思路:

(1).先定义整型变量i和sum。

(2).再定义sum等于零。

(3).建立一个for循环,循环条件为i小于等于100。

(4).在进入循环时定义i为1,如果i小于等于100则进入循环,若大于100则进入第五步。

(5).每次循环结束后i都加1。 

(6).输出sum,sum等于1到100的和 。

 

 3.流程图:

4.调试过程:

(1).

 

 (2).

 

 5.本题遇到的问题和解决方法:

(1.)唯一一个问题就是我以为for循环中在不需要时可以不写条件也可以不写分号(如图)

 然后在我编译的过程中就出现了错误(如图)

在我经过了许久的排查之后并没有解决问题,然后在同学的火眼金睛下发现了这个致命的错误。

 

6.个人总结:

在这两次的作业中,我发现难度在一点点增高,我所暴露出来的问题也越来越多,就像这道题就是因为这种小问题导致我浪费了很多的时间,所以在以后的学习过程中,一定要杜绝这种可避免的错误,提高做题的效率。这样才能做更多的题,也可以大大的节省时间。如果马虎这个问题得不到解决,是很致命的。然后在这段时间的学习当中也使我对循环的理解更进了一步。

 

第9次作业:7-5 奇偶分家:

1.代码:

#include<stdio.h>
int main(){
    int a,b,e,c,d,i;
    a = 0;
    d = 0;
    c = 0;
    scanf("%d",&a);
    for(i = 1;i<=a;i++){
        scanf("%d",&b);
        c = b % 2;
    if(c!=0){
            d++;
        }
    }
    e = a - d;
    printf("%d %d",d,e);
    return 0;
}

2.解题思路:

(1).定义整形变量a,b,c,d,e,i。

(2).定义a等于0,d等于0,c等于0。

(3).输入a。

(4).建立一个for循环,循环的条件为i小于等于a,而且在进入循环时,使i等于1。

(5).进入循环第一步先输入一个b,然后求出c(c为b除以2的余数),如果c不等于零这表示输入的b为奇数,反之c等于零则b为偶数。

(6).进入一个if的判断,如果c不等于0则d加1(d就代表奇数的个数 ),如果c等于零则回到for循环的第一步中,输入一个b。

(7).在每次循环结束后i都加1

(8).求出e,e等于a减d。e为偶数的个数。

(9).输出d,e,即输出奇数和偶数的个数。

3.流程图

4.调试过程(以三个数分别为12,10,13为例)

(1).

 

 

2).

 

 (3).

 

(4).

 

5.本题遇到的问题和解决办法:

 (1).本题遇到第一个的问题是:该如何区分奇偶数。刚开始这个问题确实困扰了我一会,在我一筹莫展的时候回想起了老师课上讲的内容,就是关于奇偶数的。然后就想起来了解题的方法。

(2).第二个问题就是循环里面套判断的方法使用的不熟练,因为是第一次使用,所以很生疏,错误也特别多。

 

6.个人总结:

在这两次的作业中我发现了循环的重要性,而且也开始运用一些知识上的结合,比如我举例的这道题,就是运用了for和if来解决这道题的。然后在以后的课堂上一定会认真听讲,老师课上讲的东西真的都很有用,一旦错过一点都会损失很多。然后我也要加强对循环的训练和使用,老师也是强调过在c程序中循环是很重要的。

 

第十次作业:7-4 最大公约数和最小公倍数:

1.代码:

 

#include<stdio.h>
int main(){
    int a,b,c,d,i,f = 0;
    int e,g;
    scanf("%d %d",&a,&b);
    for(i = 1;i<=a;i++){
        c = a % i;
        d = b % i;
        if(c==0&&d==0){
        e = i; 
}
}
    g = a * b / e;
    printf("%d %d",e,g);
    return 0;
} 

 

2.流程图:

 

 

 

3.解题思路:

(1).定义整型变量a,b,c,d,e,f,g,i。使i等于1,f等于0.

(2).输入a,b。

(3).建立for循环,循环的条件为i小于等于a。

(4).进入循环后按照计算式( c = a % i;  d = b % i;)求出c,d。这步是为了寻找a,b的约数。

(5).进入判断,如果c,d都等于零,将i的值赋给e,否则回到循环中继续运算。这步是为了求出了a,b的最大公约数e。

(6).每次循环结束都将i加1。

(7).通过g = a * b / e,得出g,g为a,b的最小公倍数。这个式子是在已知两个数的最大公约数时求最小公倍数的数学公式。

(8).输出最大公约数e,最小公倍数g。

4.调试过程:

(1).

 

(2).

 

 (3).

 

 

(4).

 

5.本题遇到的问题和解决办法:

(1).本题遇到的最大的问题就是在求最小公倍数的时候,我并没有第一个想到我举例中的那个数学公式,而是以代码的形式取而代之,我写了很久,也写了很多,写的特别乱,更别说对错了,就连编译都是一堆错误,然后在我一筹莫展的时候,我室友告诉我说这个其实不用这么复杂,它其实用一个数学公式就可以求出来。

(2).然后再就是一些技术上的问题,在运用循环和判断的嵌套时总会在大括号的位置上出现问题。

 

6.个人总结:

在这周的学习中我暴露出来的最大的问题就是数学知识不够硬,在一些与数学有关的地方总是浪费时间,所以一定要加强数学能力。然后通过这两周的学习过程中,让我在循环这一部分有了一定的进步,让我使用起来更熟练。

 统计图表:

(1).

 

(2).

 

https://www.cnblogs.com/wangxiangbo/p/9948484.html

https://www.cnblogs.com/chengxu230921/p/10017973.html

https://www.cnblogs.com/zcybky/p/10022913.html

posted on 2018-11-28 20:56  1班~吴迪  阅读(261)  评论(9编辑  收藏  举报