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

C 語言基礎練習:循環累加求和 1+2+...+9 的多種實現方式

     編輯:關於C語言

問題描述

計算前 9 個自然數的和:f = 1 + 2 + 3 + ... + 9。這是學習 C 語言循環結構的經典入門練習。

標準 for 迴圈實現

#include <stdio.h>

#define N 9

void f(int m);

int main() {
    f(N);
    return 0;
}

void f(int m) {
    int i;
    int sum = 0;
    for (i = 1; i <= m; i++) {
        sum += i;
    }
    printf("1+2+...+9=%d\n", sum);  // 輸出: 45
}

程式碼解析

  • 宏定義常量:#define N 9 避免魔術數字,提高可維護性。
  • 函數封裝:將計算邏輯封裝在 f() 中,符合模組化設計原則。
  • 累加器模式:sum = 0 初始化,迴圈中 sum += i 累加,是循環累加的標準範式。
  • 邊界條件:i <= m 確保包含上界 9。

延伸思考:數學公式優化

利用等差數列求和公式 sum = n * (n + 1) / 2 可將時間複雜度從 O(n) 降為 O(1):

void f_optimized(int m) {
    int sum = m * (m + 1) / 2;
    printf("1+2+...+%d=%d\n", m, sum);
}

這體現了「算法優於暴力」的編程哲學。

常見錯誤與避坑指南

錯誤類型錯誤代碼正確寫法說明
未初始化累加器int sum; sum += i;int sum = 0;未初始化變量值不確定
迴圈邊界錯誤i < mi <= m漏加最後一項
變量類型溢出大 n 時用 int用 long longn=100000 時 int 會溢出

總結

雖然問題簡單,但蘊含了循環控制、變量初始化、函數封裝、邊界處理等 C 語言核心基礎。建議初學者手寫運行,並嘗試修改為 while/do-while 版本、或計算 1~100 和、偶數和等變體,鞏固循環思想。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved