第三次作业
https://edu.cnblogs.com/campus/hljkj/CS201801/homework/2359
第七次作业 7-2求分数序列前n项和
#include<stdio.h> int main() { int i,n; double a,b,item,sum; a=2.0; b=1.0; sum=0; scanf("%d",&n); for(i=1;i<=n;i++){ item=a/b; sum+=item; a=a+b; b=a-b; } printf("%.2f",sum); return 0; }
解题思路:
1、定义两个整数n,i.四个浮点型函数a,b,itemm,sum。
2、在for 循环中由a,b确定item。
3、写出a与b的关系。
4、将所有的item相加,得到sum的值。
流程图
运行结果:
出现的问题:
在循环中说明分子分母关系时忘记“a”以被赋值为“a+b”,直接让“b”赋值为“a”,导致cuowu。
解决方法:
后通过编译发现问题。
总结
通过这道题,我发现在编程中要排除日常生活中惯性思维的影响,以计算机的思维来编程,
搞清楚计算机的运行步骤,才能减少出错。
第八次作业 7-2寻找250
#include<stdio.h> #include<math.h> int main() { int n,count; count=0; scanf("%d",&n); while(fabs(n)<=1000){ if(n!=250){ count++; scanf("%d",&n); } else{ count++; break;} } printf("%d",count); return 0; }
解题思路:
1、定义n和count。
2、输入一连串数字。
3、用if-else语句找出250,并输出它是第几个数字。
流程图:
运行结果:
出现问题:
在找到250之后直接输出count的值,使得count的值少一。
解决方法:
之后通过思考,发现最后的数250也能把算一个数。
总结:
编程要注重细节,刚开始的加一和最后的加一都是必须要考虑的问题,因为错误往往处在这些细节上。
第九次作业 7-2 输出闰年
#include<stdio.h> int main() { int i,n,count; count=0; scanf("%d",&n); if(n>2000&&n<=2100){ for(i=2001;i<=n;i++){ if((i%4==0&&i%100!=0)||(i%400==0)){ count++; printf("%d ",i); } } if(count==0) printf("None"); } else printf("Invalid year!"); return 0; }
解题思路:
1、定义变量i,n,count。
2、通过if判断语句和for循环将21世纪中截至n的闰年年份全部输出。
3、最后判断没有闰年的情况和n不在二十一世纪中的情况。
流程图:
出现问题:
未搞清楚判断闰年的条件,以及输出结果何时为None、何时为Invalid year!导致出错。
总结
程序编辑很注重逻辑,一定要在编写之前构思好,脑中有一个大体的思路。
点评博客
1、https://www.cnblogs.com/error203/p/9945496.html