第三次作业

https://edu.cnblogs.com/campus/hljkj/CS201802/homework/2360

第七次作业(循环)

7-2 求分数序列前N项和

1.实验代码

#include <stdio.h>
int main(){
  int N,i;
  double sum=0,a=2,b=1;
  scanf("%d",&N);
  for(i=1;i<=N;i++){
    sum=a/b+sum;
    a=a+b;
    b=a-b;
  }
  printf("%.2f",sum);
  return 0;
}

2.(1)解题思路

第一步:通过分析题目可知,需要找到分子和分母的通项公式,再加入到循环体中就可以了。

第二步:题中要求,结果精确到后两位,所以在定义分子,分母,以及总和时要用double来定义。

(2)流程图

3.本题调试过程碰到问题及解决办法

在一开始的编辑过程中遇到过一点小问题,在分子分母的赋值过程中,每一项的分子是前一项分子与分母的和,分母是前一项的分子

我将分母用a赋值,但在赋值分母之前,我已经将分子a赋里一个新的值,所以要在原有基础上再减去一个之前的分母。

 调试过程

先进入循环

分子赋值

分母赋值

再次进入循环

第九次作业(循环)

7-2 输出闰年

1.实验代码

#include<stdio.h>
int main()
{
  int number,i;
  scanf("%d",&number);
  if(number<=2000||number>2100){printf("Invalid year!");}
  else{
   for(i=2001;i<=number;i++){
    if(i%4==0&&i%100!=0||i%400==0){
      printf("%d\n",i);
    } 
   } 
  }
  if(number<=2003&&number>=2001){
    printf("None");
  }
  return 0;
}

2.解题思路

第一步:划分区间分为三个部分小于2000,2000-2100,大于2100。

第二步:加入for循环,判断在2000-2100之间的闰年,在for循环中嵌套if条件语句。

第三步:输出结果。

流程图

3.本题调试过程碰到问题及解决办法

在第一次变异的过程中,出现了许多的小问题。在改正后

第二次我用while循环做的还是存在些许问题。

最后我用上述代码,for循环解决了所有的问题。

调试的过程

首先我输入的是2004

进入循环判断,从i=2001开始

当i=2004循环结束

i=2005跳出循环,结束。结果只有2004一个闰年。

第十一次作业(函数)

6-1 求m到n的和

1.实验代码

#include <stdio.h>

int sum(int m, int n);

int main()
{    
    int m, n;

    scanf("%d %d", &m, &n);
    printf("sum = %d\n", sum(m, n));

    return 0;
}
int sum( int m, int n ){
  int i,result=0;
  for(i=m;i<=n;i++){
    result+=i;
  }
  return result;
}

return 0,之前的代码是题中已知的。

2.解题思路

第一步:总体来说这道题相当简单。主函数已将给出,只需将子函数一个循环,最后在返还到主函数中输出即可。

流程图

3.本题调试过程碰到问题及解决办法

运行结果

调试过程

我先输入m,n为1,2,结果应该是3

从主函数中进入子函数

进入子函数后,进入循环

循环结束

再将结果传回主函数输出

结果等于3,和预估结果相同。

个人总结

在本周的学习中,我对于循环语句的学习进一步深入,循环中的循环,在循环中嵌套循环,同时我还学习到函数。

在一开始学习函数时,我不太理解主函数与子函数之间的关系,不懂函数有什么用处,但在做题实践中,我发现,函数的使用可以让题变得更清晰,更加简单易懂。

折线图

https://www.cnblogs.com/chen0803/p/10046139.html

https://www.cnblogs.com/kaitbkleyue/p/10043349.html

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

posted @ 2018-11-18 20:58  小树懒和小熊猫  阅读(273)  评论(8编辑  收藏  举报