将数组整数数组分为两部分,左边为奇数,右边为偶数,数组元素不超过1000,输入用逗号隔开,输出也用逗号隔开
时间: 2024-09-20 22:15:10 浏览: 39
数组重排序(如何将所有奇数都放在所有偶数前面)的深入分析
要将整数数组根据奇偶性分成两部分,你可以创建两个新数组,一个用于存储奇数,另一个用于存储偶数。然后遍历原始数组,对每个元素进行判断并添加到相应的数组。这里是一个简单的C语言程序示例:
```c
#include <stdio.h>
// 功能:将整数数组分割成奇数和偶数数组
void splitArray(int arr[], int size, int* oddArr, int* evenArr) {
int oddCount = 0;
int evenCount = 0;
for (int i = 0; i < size; i++) {
if (arr[i] % 2 == 0) {
evenArr[evenCount++] = arr[i];
} else {
oddArr[oddCount++] = arr[i];
}
}
// 如果奇数或偶数数组大小小于实际计数,填充剩余空间(如果有的话)
while (oddCount < size && oddCount < oddArr[0]) {
oddArr[oddCount++] = -1; // 使用-1表示数组结束,可以根据需求修改
}
while (evenCount < size && evenCount < evenArr[0]) {
evenArr[evenCount++] = -1; // 同上
}
}
int main() {
int input[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; // 输入数组
int len = sizeof(input) / sizeof(input[0]);
int odd[1000], even[1000]; // 奇偶数组
splitArray(input, len, odd, even);
// 输出结果
printf("Odd numbers: ");
for (int i = 0; i < len && odd[i] != -1; i++) {
printf("%d, ", odd[i]);
}
printf("\nEven numbers: ");
for (int i = 0; i < len && even[i] != -1; i++) {
printf("%d, ", even[i]);
}
return 0;
}
```
这个程序首先定义了一个`splitArray`函数,它接受原始数组、数组大小以及两个指向结果数组的指针。然后在`main`函数中,创建了两个足够大的数组`odd`和`even`,并将输入数组的内容分到这两个数组里。
最后,我们遍历这些数组并在适当的地方插入 `-1` 标记来表示数组结束。请注意,这个例子假设输入数组中的所有元素都在1到1000之间,如果你需要处理更大的范围,你需要调整数组大小和内部逻辑。
阅读全文