程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 用C語言編程,實現調整數組,使奇數全部位於偶數前邊,

用C語言編程,實現調整數組,使奇數全部位於偶數前邊,

編輯:關於C語言

用C語言編程,實現調整數組,使奇數全部位於偶數前邊,


函數要求實現功能:調整數組使奇數全部都位於偶數前面。 要求: 輸入一個整數數組,實現一個函數,來調整該數組中數字的順序使得數組中所有的奇數位於數組的前半部分,所有偶數位於數組的後半部分。   思考,要想實現此功能,首先對函數數組進行遍歷,從兩頭進行,一個從前向後查看數組元素是否為奇數,一個從後向前查看數組元素是否為偶數,如果前為偶,後為奇則進行調換! 程序如下:  
/*
**2.調整數組使奇數全部都位於偶數前面。
** 題目:
**輸入一個整數數組,實現一個函數,
**來調整該數組中數字的順序使得數組中所有的奇數位於數組的前半部分,
**所有偶數位於數組的後半部分。
*/

#include<stdio.h>
#include<stdlib.h>
void adjust_arr(int arr[], int size)
{
    int temp; int i, j;
    /*將奇位數放在前,偶位數放在後*/
    //if (size % 2 == 1)
    //{
    //  i = 1; j = size-1;
    //}
    //else
    //{
    //  i = 1; j = size - 2;
    //}
    //for (; i <= j; i += 2, j -= 2)
    //{
    //  temp = arr[i];
    //  arr[i] = arr[j];
    //  arr[j] = temp;
    //}

    /*將奇數放在前,偶數放在後*/
    for (i = 0,j = size-1; i <j; )
    {
        if ((arr[i] % 2 == 0) && (arr[j] % 2 == 1))     //如果奇數在後,偶數在前,則進行調換
        {
            temp = arr[i];
            arr[i] = arr[j];
            arr[j] = temp;
        }
        if (arr[i] % 2 == 1)   //如果arr[i]為奇數,i++
            i++;
        if (arr[j] % 2 == 0)   //如果arr[j]為偶數,j--
            j--;
    }
}

int main()
{
    int arr[] = {  2, 3, 4, 5, 6, 7, 10,11,12,13,14,15,16,8, 9 ,17,18,19,20};
    int i;
    int size = sizeof(arr) / sizeof(arr[0]);
    adjust_arr(arr, size);    //函數調用,隊數組進行排序,
    for (i = 0; i < size; i++)
        printf("%d ",arr[i]);
    printf("\n");
    system("pause");
    return 0;
}

 


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved