首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

C++ 輸入 10 個整數,每行輸出 3 個並計算平均值:完整代碼與調試流程圖解

     編輯:程式設計綜合問答

需求

  • 輸入 10 個整數。
  • 按每行 3 個輸出(最後一行可能不足 3 個)。
  • 輸出 10 個整數的平均值(保留小數)。
  • 提供調試過程說明。

完整代碼 (C++11)

#include 
#include 
#include 
#include 

int main() {
    const int N = 10;
    std::vector nums(N);
    std::cout << "請輸入 " << N << " 個整數(空格/換行分隔):\n";

    // 1. 輸入
    for (int i = 0; i < N; ++i) {
        if (!(std::cin >> nums[i])) {
            std::cerr << "輸入錯誤:第 " << (i+1) << " 個非整數。\n";
            return 1;
        }
    }

    // 2. 按每行 3 個輸出
    std::cout << "\n輸出結果(每行 3 個):\n";
    for (int i = 0; i < N; ++i) {
        std::cout << std::setw(6) << nums[i]; // 寬度 6 對齊
        if ((i + 1) % 3 == 0 || i == N - 1) // 每 3 個或最後一個換行
            std::cout << '\n';
    }

    // 3. 計算平均值
    double sum = std::accumulate(nums.begin(), nums.end(), 0.0);
    double avg = sum / N;
    std::cout << "\n平均值:" << std::fixed << std::setprecision(2) << avg << '\n';

    return 0;
}

調試流程圖解

輸入:5 12 8 23 7 15 30 2 18 10
        │
        ▼
nums = [5, 12, 8, 23, 7, 15, 30, 2, 18, 10]
        │
        ▼
輸出循環 i=0..9
i=0: 輸出 "     5" (無換行)
i=1: 輸出 "    12" (無換行)
i=2: 輸出 "     8" → (2+1)%3==0 → 換行
i=3: 輸出 "    23" ...
i=5: 換行
i=8: 輸出 "    18"
i=9: 輸出 "    10" → i==N-1 → 換行
        │
        ▼
終端顯示:
     5    12     8
    23     7    15
    30     2    18
    10
        │
        ▼
sum = 130.0, avg = 13.00
輸出 "平均值:13.00"

關鍵知識點

  • std::vector 動態數組,避免定長數組越界。
  • std::accumulate (需 ``) 求和,初始值 `0.0` 強制 double 精度。
  • std::setw + `` 格式化對齊。
  • (i+1) % 3 == 0 判斷每 3 個換行;`i == N-1` 處理最後不足 3 個換行。
  • 輸入驗證:`if (!(cin >> x))` 捕獲非數字輸入。

C 風格對比(教學常用)

#include 
int main() {
    int a[10], i, sum=0;
    for(i=0;i<10;i++) scanf("%d",&a[i]);
    for(i=0;i<10;i++) {
        printf("%5d", a[i]);
        if((i+1)%3==0 || i==9) printf("\n");
        sum += a[i];
    }
    printf("平均值:%.2f\n", sum/10.0);
    return 0;
}

掌握「輸入驗證、格式化輸出、模運算換行、累加求平均」,基礎算法題穩拿全分。

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