第三次作业

作业要求: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\n",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

     https://www.cnblogs.com/nansu/p/10035866.html

     https://www.cnblogs.com/mashihao/p/10017088.html

 

posted @ 2018-11-30 22:06  张思彤  阅读(189)  评论(7编辑  收藏  举报