将整数数组A[0..n],将其分为两部分,左边所有元素为奇数,右边所有元素为偶数。数组元素个数不超过1000。 【输入形式】 以逗号隔开的所有元素 【输出形式】 依次打印调整后的数组元素,元素间以逗号隔开。奇数序列和偶数序列分别按原序列中的顺序依次输出,C语言
时间: 2024-09-21 08:03:17 浏览: 25
你可以使用C语言编写如下的函数来解决这个问题。首先,创建一个函数,它接受一个整数数组作为输入,并返回两个新的数组,一个包含奇数,另一个包含偶数。这里是一个简单的示例:
```c
#include <stdio.h>
#include <stdbool.h>
// 功能:将整数数组分为奇数和偶数两个数组
void separate_odd_even(int A[], int n, int* odd, int* even) {
int i = 0;
for (i = 0; i < n; ++i) {
if (A[i] % 2 == 0) {
*even++ = A[i]; // 偶数存放到even数组
} else {
*odd++ = A[i]; // 奇数存放到odd数组
}
}
}
// 输出结果
void print_arrays(int* arr1, int* arr2, int size1, int size2) {
for (int i = 0; i < size1; ++i) {
printf("%d", arr1[i]);
if (i != size1 - 1) {
printf(", ");
}
}
printf("\n");
for (int i = 0; i < size2; ++i) {
printf("%d", arr2[i]);
if (i != size2 - 1) {
printf(", ");
}
}
}
int main() {
int A[] = {1, 2, 3, 4, 5, 6, 7, 8}; // 输入数组
int n = sizeof(A) / sizeof(A[0]);
int odd[n], even[n]; // 存储奇数和偶数的临时数组
separate_odd_even(A, n, odd, even);
// 输出结果
print_arrays(odd, even, n/2, n/2); // 如果数组长度是偶数,则两边元素一样多;如果是奇数,则有一个多余的奇数
return 0;
}
```
当你运行这个程序时,它会把给定的整数数组`A`分割成奇数和偶数两部分并打印出来。