這個練習展示如何比較兩個相同大小的整數陣列,計算第一個陣列中有多少元素大於第二個陣列中的對應或所有元素。本例採用雙重迴圈,統計 num[] 中每個元素大於 cou[] 中任一元素的總次數。
陣列 num[] = {1, 3, 5, 7, 9}、cou[] = {2, 3, 4, 7, 8},兩者長度皆為 5。計算所有 (i, j) 組合中 num[j] > cou[i] 的總數。
cout = 0。cou[],內層迴圈遍歷 num[]。num[j] > cou[i] 則計數器加一。#include <stdio.h>
int main() {
int i, j;
int cout = 0;
int num[] = {1, 3, 5, 7, 9};
int cou[] = {2, 3, 4, 7, 8};
for (i = 0; i < 5; i++) {
for (j = 0; j < 5; j++) {
if (num[j] > cou[i]) cout++;
}
}
printf("陣列 num[] 比陣列 cou[] 大的數有 %d 個\n", cout);
return 0;
}

若陣列已排序,可用雙指標法將時間複雜度從 O(n²) 降至 O(n),這是優化方向之一。