c - 如何从一个数组中生成两个偶数和奇数数组?

标签 c arrays

<分区>

我正在尝试编写一个程序,将一些数字作为输入,然后将偶数和奇数放在两个单独的数组中,并以数组的形式显示它们。我需要帮助,了解如何通过跳过奇数数组中的偶数(因为我用 0 代替)使这个程序变得更好。

我的代码是:

#include <stdio.h>
int main()
{
    int n, i; // n is the size of array and i is for loop
    printf("Enter the size of array here:");
    scanf("%d" ,&n);

    int num[n], even[n], odd[n]; // num will hold all numbers, even will hold even numbers and odd will hold odd numbers

    printf("\nPlease enter integers only!!!");

    for(i=0;i<n;i++)
    {
        printf("\nEnter the number %d here:", i+1); //filling array
        scanf("%d" ,&num[i]);
    }

    for(i=0;i<n;i++) // filling even and odd arrays
    {
        if((num[i]%2) == 0)
            even[i] = num[i];
        else
            even[i] = 0;
    }
    for(i=0;i<n;i++) // filling even and odd arrays
    {
        if((num[i]%2) != 0)
            odd[i] = num[i];
        else
            odd[i]= 0;
    }
    printf("\nEVEN\t\tODD\n");

    for(i=0;i<n;i++)
        printf("%d\t\t%d\n" , even[i], odd[i]);

    system("pause");
    return 0;
}

最佳答案

#include<stdio.h>
int main()
{
   int n, i, even_index=0, odd_index=0; // n is the size of array and i is for loop
   printf("Enter the size of array here:");
   scanf("%d" ,&n);

   int num[n], even[n], odd[n]; // num will hold all numbers, even will hold even numbers and odd will hold odd numbers

   printf("\nPlease enter integers only!!!");

   for(i=0;i<n;i++)
   {
       printf("\nEnter the number %d here:", i+1); //filling array
       scanf("%d" ,&num[i]);
   }

   for(i=0;i<n;i++) // filling even and odd arrays
   {
       if((num[i]%2) == 0)
       {
        even[even_index++] = num[i];
       }
       else
       {
        odd[odd_index++] = num[i];
       }
   }

   printf("\nEVEN\n");

   for(i=0;i<even_index;i++)
       printf("%d\n" , even[i]);

   printf("ODD\n");
   for(i=0;i<odd_index;i++)
       printf("%d\n" , odd[i]);

   system("pause");
   return 0;
}

偶数和奇数数组只有两个单独的索引。每当您向数组输入一个元素时,相应的计数器就会增加。

关于c - 如何从一个数组中生成两个偶数和奇数数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24689721/

相关文章:

c - EVP_UPDATE 永远不会返回

c - C 中 Linux 上的内存模式扫描

c - scanf() 将换行符保留在缓冲区中

javascript - 将对象数组映射到两个数组的更好方法,一个是唯一键,另一个是出现次数

c - C中的多线程实现本身

c - 读取文件并存储到数组中

arrays - 快速 UserDefaults 字典

javascript - 如何在 JavaScript/TypeScript 中创建具有非唯一键的 Map?

arrays - Xcode:如何将可变长度数组输出到输出窗口?

python - 具有特定间隙的 numpy 排列