二、编写程序把长度为10的数组中所有奇数和偶数分别存放在另外两个数组中并输出
时间: 2023-03-27 19:03:00 浏览: 273
好的,我可以回答这个问题。以下是程序的代码:
#include <stdio.h>
int main() {
int arr[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int odd[10], even[10];
int odd_count = , even_count = ;
for (int i = ; i < 10; i++) {
if (arr[i] % 2 == ) {
even[even_count] = arr[i];
even_count++;
} else {
odd[odd_count] = arr[i];
odd_count++;
}
}
printf("奇数数组:");
for (int i = ; i < odd_count; i++) {
printf("%d ", odd[i]);
}
printf("\n");
printf("偶数数组:");
for (int i = ; i < even_count; i++) {
printf("%d ", even[i]);
}
printf("\n");
return ;
}
相关问题
定义一个长度为N的一维整数数组,在不新增数组情况下,编写程序将其中的值逆序重新存放。即第一个元素和最后一个元素交换位置,第二个元素和倒数第二个元素交换位置,……,注意N为奇数和偶数时,程序设计的不同。
以下是一个可能的实现:
```python
def reverse_array(arr):
n = len(arr)
for i in range(n//2):
j = n-i-1
arr[i], arr[j] = arr[j], arr[i]
return arr
```
该函数接受一个长度为N的一维整数数组作为输入,使用循环遍历数组的前一半元素,将其与对应的后一半元素交换位置,最后返回逆序后的数组。
需要注意的是,当N为奇数时,中间那个元素不需要移动,因此只需要遍历前N//2个元素。当N为偶数时,两个中间元素需要交换位置,因此需要遍历前N//2个元素和后N//2个元素。
编写函数,对于任意整型数组删除其中的所有偶数,使得剩余元素连续存放,并保持在数组中的原来出现次序。其中,函数原型为:int del(int a[], int n); 其中0<0≤10。
在C语言中,可以编写一个名为`del`的函数来实现这个需求。这个函数接受两个参数:一个整型数组`a`和数组的长度`n`。它会遍历数组,将所有偶数替换为其后的第一个奇数(如果存在),然后返回新的有效元素的索引。以下是函数的一个可能实现:
```c
#include <stdio.h>
// 助手函数,用于查找并返回大于等于目标值的第一个奇数位置
static int findNextOdd(int a[], int pos, int n) {
for (int i = pos + 1; i <= n; ++i) {
if (a[i] % 2 != 0) {
return i;
}
}
return n; // 如果数组中没有更大的奇数,则返回数组末尾
}
// 主函数 del
int del(int a[], int n) {
for (int i = 0; i < n; i++) {
if (a[i] % 2 == 0) { // 如果元素是偶数
int nextPos = findNextOdd(a, i, n); // 找到下一个奇数的位置
// 交换当前偶数和下一个奇数的位置
int temp = a[i];
a[i] = a[nextPos];
a[nextPos] = temp;
}
}
// 返回新数组的有效元素个数(即所有非偶数的数量)
return count(a, n);
}
// 辅助函数计算数组中非零元素的数量
static int count(int a[], int n) {
int count = 0;
for (int i = 0; i < n; ++i) {
if (a[i] != 0) {
++count;
}
}
return count;
}
int main() {
int arr[] = {1, 2, 3, 4, 5, 6, 7, 8, 9};
int n = sizeof(arr) / sizeof(arr[0]);
del(arr, n);
printf("修改后的数组(只包含奇数): ");
for (int i = 0; i < count(arr, n); i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
在这个示例中,`main`函数展示了如何使用`del`函数,并打印出处理后的结果。请注意,该函数假设输入数组`a`不会为空,并且其范围在指定的范围内。
阅读全文