c语言将一个数组中的奇数存放到另一个数组中输出
时间: 2024-05-11 21:16:41 浏览: 126
好的,我明白了。对于您的问题,可以按照以下方法实现:
1. 声明两个数组,一个存放原数组中的奇数,一个存放新数组中的奇数。
2. 遍历原数组,判断每个元素是否为奇数,如果是,则将其存入新数组。
3. 输出新数组中的元素。
下面是一个示例代码:
```c
#include <stdio.h>
int main()
{
int arr1[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int arr2[10];
int count = 0;
for (int i = 0; i < 10; i++)
{
if (arr1[i] % 2 != 0)
{
arr2[count] = arr1[i];
count++;
}
}
for (int i = 0; i < count; i++)
{
printf("%d ", arr2[i]);
}
return 0;
}
```
输出结果为:`1 3 5 7 9`。希望能对您有所帮助。
相关问题
用c语言编写函数把数组中所有奇数放在另一个数组中。
请参考以下代码实现:
```c
void separateOdd(int arr[], int size, int oddArr[], int* oddSize) {
*oddSize = 0;
for (int i = 0; i < size; i++) {
if (arr[i] % 2 != 0) { // 如果是奇数
oddArr[*oddSize] = arr[i]; // 把奇数放入另一个数组中
(*oddSize)++; // 奇数数组大小加1
}
}
}
```
这个函数接受四个参数,分别是:
- `arr`:原始数组的指针
- `size`:原始数组的大小
- `oddArr`:存放奇数的数组的指针
- `oddSize`:存放奇数数组大小的指针
函数的实现思路是遍历原始数组中的每个元素,如果这个元素是奇数,就把它放入奇数数组中,并且奇数数组的大小加1。最终,奇数数组中存放的就是原始数组中的所有奇数。
使用这个函数的示例代码如下:
```c
#include <stdio.h>
void separateOdd(int arr[], int size, int oddArr[], int* oddSize);
int main() {
int arr[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int arrSize = sizeof(arr) / sizeof(arr[0]);
int oddArr[arrSize];
int oddSize;
separateOdd(arr, arrSize, oddArr, &oddSize);
printf("Odd numbers: ");
for (int i = 0; i < oddSize; i++) {
printf("%d ", oddArr[i]);
}
printf("\n");
return 0;
}
```
这个程序的输出结果是:
```
Odd numbers: 1 3 5 7 9
```
c语言某无序一维数组arr[N]中,将数组中的奇数和偶数分开,并排序输出到一个2行的二维数组中,第一行存放奇数,第二行存放偶数,二维数组原本全部存放-1。只用数组
在 C 语言中,你可以通过遍历数组并使用两个指针分别指向奇数部分和偶数部分,同时维护一个临时二维数组结构来实现这个需求。这里是一个基本步骤的示例:
1. 初始化一个 2xN 的二维数组 `result`,所有元素初始化为 -1。
2. 创建两个指针 `odd_ptr` 和 `even_ptr` 分别指向原数组的头和尾。
3. 遍历数组 `arr`:
a. 如果当前元素是奇数(可以用 `arr[i] % 2 == 1` 判断),将其存储到 `result[0][j++]`,然后移动 `odd_ptr`。
b. 如果当前元素是偶数(`arr[i] % 2 == 0`),将其存储到 `result[1][j++]`,然后移动 `even_ptr`。
4. 当遍历结束后,奇数和偶数部分都被处理完了。
以下是伪代码形式:
```c
for (int i = 0; i < N; i++) {
if (arr[i] % 2 == 1) {
result[0][j++] = arr[i];
} else {
result[1][j++] = arr[i];
}
}
// 对每一行进行排序(可以使用选择排序、插入排序等简单算法)
for (int i = 0; i < 2; i++) {
for (int j = 0; j < N - 1; j++) {
// 用冒泡排序为例
for (int k = 0; k < N - 1 - j; k++) {
if (result[i][k] > result[i][k + 1]) {
swap(result[i][k], result[i][k + 1]);
}
}
}
}
```
阅读全文