首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C語言級數求和:while 迴圈實作與常見邏輯錯誤分析

     編輯:關於C語言

問題背景

同樣計算 f = 1 - 1/2! + 1/3! - ... + 1/9!,但使用 while 迴圈。

原始碼錯誤分析

int i = 1;
while(i <= 2) {  // 錯誤:應為 i <= 9
    f += flag * 1.0 / factorial(i);
    flag = -flag;
    i++;
}

此錯誤導致僅計算前兩項(1/1! - 1/2! = 0.5),而非完整 9 項。

修正後程式碼

#include <stdio.h>

int factorial(int num);

int main() {
    int i = 1;
    double f = 0;
    int flag = 1;

    while(i <= 9) {  // 修正:9 而非 2
        f += flag * 1.0 / factorial(i);
        flag = -flag;
        i++;
    }

    printf("while 迴圈結果: %.10f\n", f);
    return 0;
}

int factorial(int num) {
    int j = 1, k = 1;
    while(j <= num) {
        k *= j;
        j++;
    }
    return k;
}

三種迴圈對比

迴圈類型適用場景本題適用性
for已知迴圈次數★★★ 最適合
while未知次數,依條件判斷★★ 可用但需小心邊界
do-while至少執行一次★ 非必要

除錯技巧

  • 列印迴圈變數追蹤執行次數
  • 邊界測試:i=1, i=9 時的行為
  • 使用斷點調試觀察 flag 變化
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved