第三次作業


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM