作业要求:【https://edu.cnblogs.com/campus/hljkj/CS201801/homework/2359】
一:作业7.1
1.实验代码
#includeint main() { int i,sum; sum=0; for(i=1;i<=100;i++){ sum=sum+i;} printf("sum = %d\n",sum); system("pause"); return 0; }
2.解题思路:
(1)首先定义两个两个变量i,sum,首先sum设定初始值为零。再利用for循环不停的求值,从1开始累加到一百。
给sum=sum+i即每次累加一个数。最后输出sum。
(2)流程图
3.运行结果截图:
调试截图:
遇到的问题及解决办法:
在for循环中没有写上i++,这个将会导致i无法增加,使这个循环结构无法执行。在后来的检查过程中,发现了这个问题并修改了,答案正确。
个人总结:在这次的学习中,我学会了for循环应该怎么用,其中最重要的是找到循环体。
第八次作业:求奇数和
(1):代码:
#includeint main() { int num,a; for(;;){ scanf("%d",&a); if(a<=0){ break; } if(a%2!=0){ num=num+a; } } printf("%d",num); return 0; }
(2)解题思路:
首先设变量num,a。输入a,,如果a<=0,为负数,即程序停止。如果a除以2不等于零,那么a为奇数,循环累计将a的和求出来,和为num,输出num。
调试截图:
遇到的问题:
for里面应该有两个分号,开始没有打两个分号,一直编译错误,后来查阅了相关资料才发现这种情况下for需要加括号并且里面要有两个分号。
总结:在写一些程序,任何一步都不能错,不能根据自己的思维来,要知道很多语法点,一点错误不能犯,有不懂的及时解决。
三:第十次作业:
(1):代码:
#includeint main() { int M, N,i,n = 0, j, x = 0; scanf("%d %d",&M, &N); for(i = M; i <= N; i++) { for(j = 2; j < pow(i,0.5); j++) { if(i % j == 0) { break; } } if(j > pow(i,0.5) && i != 1) { n++; x+=i; } } printf("%d %d",n,x); return 0; }
(2):步骤:
先定义整型变量M, N,i,n = 0, j, x = 0,输入M,N即在MN的范围内求素数,此时当数字除以任何一个中间段的数的时候,余数为零即停止循环,如果不是即累计值,最后求和。最后输出结果n,x。
程序框图:
(3):运行截图:
(4):调试截图:
(5):遇到的问题:
这个题需要两层for循环,刚开始只用了一层,但是编译也是不对的,先是总的for循环规定所求的数的范围,然后里面的for就是判断是否为素数,先是有除了一和本身的数, 运行后排除不是素数的数,剩下的数求和,最后输出所要求的结果。这个题必须要有两个for,否则无法求出素数的和,在查阅了书本后我才知道这个。
总结:这周我们学了for循环更,并且循环的越来越复杂,从一开始的一个循环,比较容易理解的地方开始,慢慢的由浅入深,到后来可能不止一个循环体。这个题目首先需要知道有几个变量,哪些该输入哪些该输出,然后理清各变量之间的关系,再用所学的C语言知识写出来,需要细心的写,不然稍不留神就会出现错误。
表格:
折线图:
评论链接:https://www.cnblogs.com/104gyy/p/10022689.html
https://www.cnblogs.com/cyw1/p/10028608.html
https://www.cnblogs.com/ytyt12/p/10023834.html