作业要求:https://edu.cnblogs.com/campus/hljkj/CS201802/homework/2360
【第六次作业 】 7-3求平方与倒数序列的部分和
#include <stdio.h> int main () { int m,n; double s; scanf("%d %d",&m,&n); s = 0; for(m>0;m<=n;m++){ s = s+m*m+1.0/m; } printf("sum = %.6f ",s); return 0; }
解题思路:
1.定义变量m,n,s
2.设置循环体语句条件和循环的算法
3.当不满足循环条件时,输出s
流程图:
运行结果:
我输入了题目所给的数据以后,并没有得到与题目相同的输出结果,然后我进行了调试
通过调试,可以看出,我的问题出现在计算上
然后我发现,计算的sum值是浮点型变量,要将1/m变为1.0/m,才会得到浮点型数据,否则1/m会取整
然后得到了正确答案
【第八次作业】7-1 求整数的位数及各位数字之和
#include <stdio.h> int main() { int n,count,d,s; count=0; s=0; scanf("%d",&n); do{ d=n%10; n=n/10; s=s+d; count++; }while(n!=0&&n<=10^9&&n>0); printf("%d %d",count,s); return 0; }
解题思路:
1.定义整型变量
2.输入一个数,当这个数为正整数,且小于等于10^9时,开始计算其位数,及相加和
3.当n=0时,输出位数及和
流程图:
运行结果:
运行结果是正确的,在PTA上却显示答案错误,根据提示,改变了进入循环的条件
答案正确
【第十次作业】7-4 最大公约数和最小公倍数
#include <stdio.h>
int main()
{
int m,n,i,max,min;
scanf("%d %d",&m,&n);
for(i=1;i<=m;i++){
if(m%i==0&&n%i==0){
max=i;}
}
for(i=m*n;i>=m;i--){
if(i%m==0&&i%n==0){
min=i;}
}
printf("%d %d",max,min);
return 0;
}
解题思路:
1.定义两个整型变量m,n
2.最大公约数从一开始,能被m,n同时整除,所以依次递增
最小公倍数从m*n开始,最小公倍数的最大值为m*n ,所以依次递减
3.输出计算得出的max,min
流程图:
运行结果
运行结果显示的没有问题,PTA上却报了错,然后我进行了调试
调试也没有出问题,然后我根据错误提示发现循环条件错误
结果正确
周总结:
经过学习,我学会了循环语句的相关内容,在反复改错的过程中知道一些知识,老师讲了for,while,do while......,通过课上的练习和课下的练习题,对其已经掌握的差不多。
问题和难点:
在做练习题时,急于做题,不认真地阅读题目要求,好多次因为循环条件而报错,浪费了很多时间;
还有在打代码时会有一些因为条件而阻塞思路。
博客字数,代码行数:
折线图:
作业点评:https://www.cnblogs.com/errumuran/p/10043471.html