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