第三次作業


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

第11周:

7-1 求簡單交錯序列前N項和 (15 分)

本題要求編寫程序,計算序列 1 - 1/4 + 1/7 - 1/10 + ... 的前N項之和。

輸入格式:

輸入在一行中給出一個正整數N。

輸出格式:

在一行中按照“sum = S”的格式輸出部分和的值S,精確到小數點后三位。題目保證計算結果不超過雙精度范圍。

輸入樣例:

10

輸出樣例:

sum = 0.819

一、實驗代碼

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

二、解題思路

1.步驟

第一步:分析題意並定義四個變量x、y、N、a、令a=1,y=0。

第二步:輸入一個正整數N。

第三步:利用for循環語句計算出每一項的值並求出他們的和y,即y=y+a*1.0/x。因為一項是正數、一項是負數,所以引入a=1並使每次的a=-a來改變正負。

第四步:輸出y並保留3位小數。

2.流程圖

3.本題調試過程碰到問題及解決辦法

 第12周:

7-1 求整數的位數及各位數字之和 (15 分)

對於給定的正整數N,求它的位數及其各位數字之和。

輸入格式:

輸入在一行中給出一個不超過109​​的正整數N。

輸出格式:

在一行中輸出N的位數及其各位數字之和,中間用一個空格隔開。

輸入樣例:

321 

輸出樣例:

3 6
一、實驗代碼
#include<stdio.h>
int main(void)
{
    int N,n=0,sum=0;
    scanf("%d",&N);
    do{
        sum=sum+N%10;
        N=N/10;
        n++;
    }
    while(N!=0);
    printf("%d %d",n,sum);
    return 0; 
}

二、解題思路

1.步驟

第一步:定義三個變量 N,n,sum

第二步:根據題意寫出循環條件

第三步:寫出算法

第四步:輸出位數n與個數字之和sum

2.流程圖

3.本題調試過程碰到問題及解決辦法

第13周:

6-1 求m到n之和 (10 分)

本題要求實現一個計算m~n(m<n)之間所有整數的和的簡單函數。

函數接口定義:

int sum( int m, int n ); 

其中mn是用戶傳入的參數,保證有m<n。函數返回的是m~n之間所有整數的和。

裁判測試程序樣例:

#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; } /* 你的代碼將被嵌在這里 */ 

輸入樣例:

-5 8 

輸出樣例:

sum = 21
一、實驗代碼
int sum(int m,int n){
  int i,y=0;
  for(i=m;i<=n;i++){
      y=y+i;
  }
  return y;
}

二、解題思路

1.步驟

第一步:分析題意,得知自定義的函數sum是用於求m~n之間整數的和。

第二步:在sum函數內定義變量i,y=0。

第三步:寫出循環條件和算法。

第四步:返還m~n之間整數的和y的值。

2.流程圖

3.本題調試過程碰到問題及解決辦法

 

個人總結:

通過這一段時間的學習,我學習到了幾種循環語句和自定義函數的方法

 

 

 


免責聲明!

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



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