給定兩個整數陣列,判斷是否存在至少一個相同元素。
#include#include bool has_common(const int *a, size_t na, const int *b, size_t nb) { for (size_t i = 0; i < na; i++) for (size_t j = 0; j < nb; j++) if (a[i] == b[j]) return true; return false; } int main() { int arr1[] = {1,2,3,4,5}; int arr2[] = {1,2,7,4,9}; printf("%s\n", has_common(arr1,5, arr2,5) ? "存在相同元素" : "無相同元素"); return 0; }
for (i=0; i<5; i++) {
for (j=0; j<5; j++)
if (arr1[i]==arr2[j]) { printf(...); break; }
break; // 錯誤:外層 break 導致只檢查 i=0 !
}
外層 break 位置錯誤,應移除或放在 if 內配合 goto/旗標跳出雙層。
bool seen[1001] 空間換時間。