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

C++ 輸出 10 個整數每行 3 個並計算平均值:修正取模邏輯與浮點除法

     編輯:程式設計疑難解答

原代碼問題

for (int i = 0; i < n; i++) {
    cout << a[i];
    if (i % 3 == 0) cout << '\n'; // 錯誤:i=0,3,6,9 換行,導致第一行只有 1 個數
}
float av = 0;
for (int i = 0; i != n; i++) av += a[i];
return av / n; // 整數除法,截斷小數

修正版

#include <iostream>
using namespace std;

void input(int a[], int n) {
    for (int i = 0; i < n; i++) cin >> a[i];
}

void output(int a[], int n) {
    for (int i = 0; i < n; i++) {
        cout << a[i] << ' ';          // 加空格分隔
        if (i % 3 == 2) cout << '\n'; // i=2,5,8 換行 → 每行 3 個
    }
    if (n % 3 != 0) cout << '\n';     // 最後不足 3 個補換行
}

float average(int a[], int n) {
    float sum = 0;
    for (int i = 0; i < n; i++) sum += a[i];
    return sum / n; // sum 為 float,自動浮點除法
}

int main() {
    const int n = 10;
    int a[n];
    input(a, n);
    output(a, n);
    cout << "平均值=" << average(a, n) << '\n';
    return 0;
}

關鍵修正

  • 換行條件:i % 3 == 2(索引 2、5、8 為每行第 3 個),而非 ==0。
  • 浮點除法:累加變量聲明為 float 或 double,確保 sum / n 為浮點運算。
  • 格式美化:輸出數字後加空格,末行補換行。

此類基礎循環控制題,核心在於索引與計數的對應關係,建議手寫幾組數據驗證邏輯。

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