从键盘输入8个整数存放在一个数组中,然后将奇数和偶数分别存入到两个不同的数组中,并按奇数、偶数交替的顺序输出这两个数组中的所有数据 (先交替输出,如果奇数个数多,则再输出剩下的奇数,如果偶数个数多,则再输出剩下的偶数)。 奇数偶数俩数组 长度 加起来 不能超过8
时间: 2023-11-27 10:49:09 浏览: 131
js代码-给定一个非负整数数组A,A中一半数是奇数,一半数是偶数,对数组进行排序,以便当A[i]为奇数时,i也是奇数;当A[i]为偶数时,i也是偶数。返回任何满足上述条件的数组作为答案。
下面是实现这个功能的 C++ 代码:
```c++
#include <iostream>
using namespace std;
int main() {
int arr[8];
int odd[4], even[4]; // 奇数和偶数数组
int odd_count = 0, even_count = 0; // 奇数和偶数计数器
// 输入8个整数
cout << "输入8个整数:" << endl;
for (int i = 0; i < 8; i++) {
cin >> arr[i];
}
// 分别存入奇数和偶数数组
for (int i = 0; i < 8; i++) {
if (arr[i] % 2 == 1) { // 奇数
if (odd_count < 4) { // 奇数数组未满
odd[odd_count++] = arr[i];
}
} else { // 偶数
if (even_count < 4) { // 偶数数组未满
even[even_count++] = arr[i];
}
}
}
// 按奇数、偶数交替的顺序输出这两个数组中的所有数据
int odd_idx = 0, even_idx = 0;
while (odd_idx < odd_count && even_idx < even_count) {
if (odd_idx <= even_idx) { // 先输出奇数
cout << odd[odd_idx++] << " ";
} else { // 再输出偶数
cout << even[even_idx++] << " ";
}
}
// 如果奇数个数多,则再输出剩下的奇数
while (odd_idx < odd_count) {
cout << odd[odd_idx++] << " ";
}
// 如果偶数个数多,则再输出剩下的偶数
while (even_idx < even_count) {
cout << even[even_idx++] << " ";
}
cout << endl;
return 0;
}
```
注意,由于题目要求奇数偶数两个数组长度加起来不能超过8,因此这里我们将奇数和偶数数组的长度都设置为4。如果输入的数中奇数和偶数的个数超过了4个,那么多余的数将被忽略。
阅读全文