c - 在C中交换数组内的奇数和偶数

标签 c arrays

输入数组例如 Array[10] = {12,23,0,-7,138,22,7,99,10,-2​​}

我想打印出一端为偶数,另一端为奇数的数组,如下所示:Array[10] = {12,0,-2,10,22,138,-7,99,7 ,23}

int main()
{
    int N = 0, i = 0, j = N-1, index = 0;
    printf("Enter N (0>N<10): ");
    scanf("%d", &N);

    int Array[N];
    for(i=0;i<N;i++){
        printf("Enter the value number %d :", i+1);
        scanf("%d", &Array[i]);
    }
    printf("Array[%d] ={",N);
    for(i=0;i<N;i++){
        printf("%d\t", Array[i]);
    }
    printf("}");

    // swaping odd and even numbers

    int Array2[N];
    while (i < j){
        if(Array[i]%2 == 0){
            Array2[i] = Array[index];
            i++;
        }
        else{
            Array2[j] = Array[index];
            j++;
        }
        index++;
    }

    // view the new array

    printf("\n Array[%d] ={",N);
    for(i=0;i<N;i++){
        printf("%d\t", Array2[i]);
    }
    printf("}");

    return 0;
}

这似乎不起作用。任何帮助将不胜感激。

注意:我知道 Array[N] 部分不是应该如何完成的,它只是为了简化事情。

最佳答案

在您的 else 语句中:

else{
            Array2[j] = Array[index];
            j++;
        }

您需要j--;而不是j++

关于c - 在C中交换数组内的奇数和偶数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33947947/

相关文章:

c++ - Linux中 "write"函数的问题

java - 如何将字符串放入对象数组中?

JavaScript 图像旋转

c - C 中的伪随机数生成器 - 使用时间函数播种

c++ - Objective-C 中的 AOP : Inject context-aware code into each method while maintaining DRY

你能扭转总数吗? (循环C)

c - 如何在巨型循环中使用 GDB

javascript - 通过公共(public)键对对象数组进行分组,将嵌套属性合并到数组中

c - 在 C 编程中使用数组、循环和条件

java - ArrayIndexOutOfBoundsExecption :Android