Chèn phần tử X vào tất cả các phần tử chẵn trong mảng

Yêu cầu:

– Chèn phần tử X vào tất cả các phần tử chẵn trong mảng.

Thuật toán:

– Tìm vị trí các phần tử chẵn trong mảng và chèn X vào sau các phần tử chẵn

Code:

/************************************************************
* Author: VNCODING
* History 
* 2014/11/14 first create VNCODING
*************************************************************/
#include "stdio.h"
#include "conio.h"

void insert_behind_even(int A[], int *n, int x);
void print_arr(int A[], int n);

void main( void )
{
    //int A[] = {1, -9, 0, 12, 34, 5, 12, -7, 9, -8};
    //int A[] = {1, -9, 13, 27, 5, 9, 2, 10, 12, 27};
    int A[] = {1, -2, 5, 6, 8, 13, 4, 10};
    int len = sizeof(A)/sizeof(int);

    //insert 0 after each maximum element of array
    printf("\nMang truoc khi chen 0");
    print_arr(A, len);
    insert_behind_even(A, &len, 0);
    printf("\nMang sau khi chen 0");
    print_arr(A, len);
    getch();
}

// Append x to max value
void insert_behind_even(int A[], int *n, int x)
{
    int i, j;
    for(i = *n - 1; i >= 0; i--)
    {
        if(A[i]%2 == 0)
        {
            (*n)++;
            for(j = *n - 1; j > i; j--)
            {
                A[j] = A[j-1];
            }
            A[j+1] = x; 
        }
    }
}

// Display array
void print_arr(int A[], int n)
{
    int i;
    for(i = 0; i < n; i++)
    {
        printf("\nA[%d] = %d", i, A[i]);
    }
}

Kết quả:

Mang truoc khi chen 0
A[0] = 1
A[1] = -2
A[2] = 5
A[3] = 6
A[4] = 8
A[5] = 13
A[6] = 4
A[7] = 10

Mang sau khi chen 0
A[0] = 1
A[1] = -2
A[2] = 0
A[3] = 5
A[4] = 6
A[5] = 0
A[6] = 8
A[7] = 0
A[8] = 13
A[9] = 4
A[10] = 0
A[11] = 10
A[12] = 0

Be the first to comment

Leave a Reply