#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 (需 `std::setw + `(i+1) % 3 == 0 判斷每 3 個換行;`i == N-1` 處理最後不足 3 個換行。#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;
}
掌握「輸入驗證、格式化輸出、模運算換行、累加求平均」,基礎算法題穩拿全分。