第三次作业

作业要求https://edu.cnblogs.com/campus/hljkj/CS201802/homework/2360

7-1 求简单交错序列前N项和 :

1.实验代码

#include<stdio.h>
int main()
{
  int N,flag=1,i=1,a=1;
  double sum,item;
  scanf("%d",&N);
  while(i<=N){
    item=flag*1.0/a;
    flag=-flag;
    a=a+3;
    i=i+1;
    sum=sum+item;
  }
  printf("sum = %.3lf",sum);
  return 0;
}

2.解题思路:

(1)本题算法:首先,本题需要求和,所以得定义求和变量和参数变量,其次,本题要的是交错相加,所以需要定义一个变量来确定参数的正负,引用flag作为控制正负的变量,为了增加程序的可读性,大家尽量不要用 abc之类的来定义,尽量用让人一目了然的变量。

(2)流程图

3.调试过程

在本次作业中,我们应该注意变量的改变,否则就会进入死循环!

7-1 求整数的位数及各位数字之和 

1.实验代码

#include<stdio.h>
#include<math.h>
int main()
{
  int a,b,sum=0,i=0;
  scanf("%d",&a);
  while(a>0){
    b=a%10;
    a=a/10;
    sum=sum+b;
    i++;
  }
  printf("%d %d",i,sum);
  return 0;
}

2解题思路

(1)本题所要求的是 求一个数的位数以及各位数字之和,为此我们得想办法将这个多位数拆开,联想之前做过的火车到站问题,我们可以用取整取余的方法来实现位数的分离,注意

第一步要先取余,再取整,否则就会造成个位数的丢失!

(2)流程图

3.调试过程

刚开始没注意到顺序 问题导致个位数消失,进而导致结果出现错误,经改编后截图如下

这下结果就正确了下面是调试截图 

6-4 使用函数求素数和 (20 分)

1.实验代码

int prime( int p ){
  int i,count=1;
  if(p<=1){count=0;}
  for(i=2;i<=p/2;i++){
   if(p%i==0)count=0;
  }
 return count; 
}
int PrimeSum( int m, int n ){
  int sum=0,p;
  for(p=m;p<=n;p++){
   if(prime(p))
   sum+=p;
  }
  return sum;
}

2.解题思路

(1)本题要求定义函数来判断素数,以及求某个区间内素数的和,因此要先了解素数定义,然后运用循环来判断其是否为素数,然后利用嵌套循环来找出某区间内 所有素数,并求它们的和

(2)流程图

3.调试过程

从这道题中我学会了定义两个函数时可以互相套用,从而减少代码量,增加程序可读性!

4.本周我们学习了嵌套循环以及定义函数等知识,我觉得嵌套循环是个难点,所以我们得多打代码多练习来使我们更好的掌握

5.折线图

点评博客https://www.cnblogs.com/wafx/p/9998306.html

    https://www.cnblogs.com/errumuran/p/10043471.html

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

posted on 2018-11-30 19:47  陈悦安2018023950  阅读(210)  评论(11编辑  收藏  举报

导航