在程式設計練習中,陣列操作是基礎且重要的主題。本文介紹一個經典問題:給定一個整數陣列,計算有多少組「前綴和」(從陣列開頭累加到某位置)等於「後綴和」(從陣列結尾反向累加到某位置)。
輸入一個固定大小的整數陣列 num[] = {3, 6, 2, 1, 4, 5, 2}。我們需要分別計算從左至右的累加和(前綴和)以及從右至左的累加和(後綴和),然後統計有多少對 (i, j) 使得 prefix[i] == suffix[j]。
sum[] 和 total[] 分別儲存前綴和與後綴和。#include <stdio.h>
#include <stdlib.h>
int main() {
int i, j, n;
int count = 0;
int sum[7] = {0};
int total[7] = {0};
int num[] = {3, 6, 2, 1, 4, 5, 2};
// 計算前綴和
n = 0;
for (i = 0; i < 7; i++) {
n += num[i];
sum[i] = n;
}
// 計算後綴和
n = 0;
for (i = 6; i >= 0; i--) {
n += num[i];
total[i] = n;
}
// 比較兩者
for (i = 0; i < 7; i++) {
for (j = 0; j < 7; j++) {
if (sum[i] == total[j]) {
count++;
}
}
}
printf("陣列 num[] 中有 %d 組前綴和等於後綴和\n", count);
return 0;
}

程式會輸出符合條件的組合數量。此範例展示了陣列遍歷、累加運算與巢狀迴圈比較的基本技巧,適合初學者練習邏輯思維與 C 語言語法。