數組 a[8] = {2,33,-6,5,-82,30,99,21},構建數組 b:
1. 先存所有負數
2. 再存 >0 且是 3 的倍數
3. 剩餘位置填 0
for (j = 1; j < 8; j++) // 錯誤:從 1 開始,b[0] 未輸出
cout << b[j] << " ";
導致第一個元素(-6)被跳過,輸出從 -82 開始。
#include
using namespace std;
int main() {
int a[8] = {2, 33, -6, 5, -82, 30, 99, 21};
int b[8] = {0};
int j = 0;
// 1. 負數
for (int i = 0; i < 8; ++i)
if (a[i] < 0) b[j++] = a[i];
// 2. 正數且3的倍數
for (int i = 0; i < 8; ++i)
if (a[i] > 0 && a[i] % 3 == 0) b[j++] = a[i];
// 3. 輸出(從 0 開始)
for (j = 0; j < 8; ++j)
cout << b[j] << " ";
// 輸出: -6 -82 33 30 99 21 0 0
return 0;
}
b[8] = {0} 自動填充剩餘位置為 0。