作业要求 :【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】