Chèn phần tử X vào vị trí đầu của mảng 1 chiều

Yêu cầu:

– Chèn phần tử X vào vị trí đầu của mảng 1 chiều.

Thuật toán:

– Để chèn phần tử vào mảng, chúng ta thực hiện phép dồn: A[i+1] = A[i]. Phép dồn phần tử được thực hiện đến vị trí k cần chèn giá trị mới. Gán A[k] = X.

Code:

/************************************************************
* Author: VNCODING
* History 
* 2014/10/27 first create VNCODING
*************************************************************/
#include <stdio.h>
#include <conio.h>
#include <math.h>
#define N 100

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

void main()
{
    int A[N];
    int n;
    do 
    {
        printf("\nNhap n = ");
        scanf("%d", &n);
    }while(n <= 0 || n >= N);
    import_arr(A, n);
    insert_first_arr(A, &n, 5);
    printf("\nMang sau khi chen");
    print_arr(A, n);
    getch();
}

void import_arr(int A[], int n)
{
    int i;
    for(i = 0; i < n; i++)
    {
        printf("\nA[%d] = ", i);
        scanf("%d", &A[i]);
    }
}

void insert_first_arr(int A[], int* n, int x)
{
    int i;
    for(i = *n - 1; i >= 0; i--)
    {
        A[i+1] = A[i];
    }
    A[0] = x;
    (*n)++;
}

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

Kết quả:

 
Nhap n = 5
A[0] = 9
A[1] = 0
A[2] = -8
A[3] = 5
A[4] = 3

Mang sau khi chen
=========================
A[0] = 5
A[1] = 9
A[2] = 0
A[3] = -8
A[4] = 5
A[5] = 3
=========================

Be the first to comment

Leave a Reply