gpt4 book ai didi

c - 在c中按索引偶数或奇数将数组拆分为两个数组

转载 作者:行者123 更新时间:2023-11-30 20:58:19 25 4
gpt4 key购买 nike

C语言中如何将数组的偶数位置号与奇数位置号分开。示例

int arr[]= {2,3,4,5,6,7,8,9,1};
int odd[]= {2,4,6,8,1};
int even[] = {3,5,7,9};

最佳答案

使用%得到余数。如果余数不为零,则索引为奇数,否则为偶数。但索引从0开始,而不是从1开始,因此第一个元素的索引是0并且是偶数。如果您想根据该排序(似乎是您所做的),请在索引中添加 1。

#include <stdio.h>

int main() {
int arr[] = {2, 3, 4, 5, 6, 7, 8, 9, 1}; // our array

const size_t max_size = sizeof(arr) / sizeof(arr[0]);
int odd[max_size];
size_t odd_cnt = 0;
int even[max_size];
size_t even_cnt = 0;

for (size_t i = 0; i != max_size; ++i) {
if ((i + 1) % 2) { // if (i + 1) % 2 is nonzero, i + 1 is odd
odd[odd_cnt++] = arr[i];
} else {
even[even_cnt++] = arr[i];
}
}

for (size_t i = 0; i != odd_cnt; ++i) {
printf("%d ", odd[i]);
}
printf("\n");

for (size_t i = 0; i != even_cnt; ++i) {
printf("%d ", even[i]);
}
printf("\n");
return 0;
}

关于c - 在c中按索引偶数或奇数将数组拆分为两个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53035113/

25 4 0