输入一个整数数组,实现一个函数,来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分,所有偶数位于数组的后半部分(二)

版权声明:版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/kevin980123 https://blog.csdn.net/kevin980123/article/details/79980823

输入一个整数数组,实现一个函数,来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分,所有偶数位于数组的后半部分(其二)


程序代码如下:


#include <stdio.h>
#define N 10

void change(int arr[],int a, int b)
{
    int tmp = arr[a];
    arr[a] = arr[b];
    arr[b] = tmp;

}

void OldToEven(int arr[], int length)
{
    int i = 0;
    int j = length - 1;
    int tmp = 0;
    while (i < j)
    {
        while ((i < j) && (arr[i] % 2 == 1))
        {
            i++;
        }
        while ((i < j) && (arr[j] % 2 == 0))
        {
            j--;
        }
        if (i != j)
        {
            change(arr,i,j);
        }
    }
}

int main()
{
    int arr[N] = {1,2,5,8,0,3,7,6,4,9};
    int i = 0;
    printf("请输入一组整数:\n");
    for (i = 0; i < N; i++)
    {
        scanf("%d", &arr[i]);
    }
    OldToEven(arr,N);
    for (i = 0; i < N; i++)
    {
        printf("%d ", arr[i]);
    }
    printf("\n");
    return 0;
}

程序运行结果如下:


这里写图片描述

阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页