作业要求: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