輸入兩整數 a b(a ≤ b),輸出 a..b 所有整數,每 5 個換行,每數佔 5 字元寬度右對齊,最後輸出總和 Sum = x。
printf("%*i", 5, i) 的對齊陷阱%*i 的 `*` 代表**最小寬度**,若數字位數超過 5 會自動展寬,**不會截斷**,導致輸出欄位錯位。題目測資可能含較大數字,需改用固定格式:
printf("%5d", i); // 強制 5 字元寬度,超寬仍完整輸出
int main() {
int a, b, sum = 0, cnt = 0;
scanf("%d %d", &a, &b);
for (int i = a; i <= b; i++) {
printf("%5d", i);
sum += i;
if (++cnt == 5 && i != b) { putchar('\n'); cnt = 0; }
}
printf("\nSum = %d\n", sum);
return 0;
}
sum 必須初始化為 0題目連結:PAT Basic - 循環-01