Xóa các phần tử trùng với x trong mảng 1 chiều

Yêu cầu:

Viết hàm tìm và xóa tất cả các phần tử trùng với x trong mảng một chiều các số nguyên, nếu không tồn tại phần tử x trong mảng thì trả về -1.

Thuật toán:

Code:

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

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

void main( void )
{
    int A[] = {5, 10, 15, 1, 5, 4, 0, 5, 6};
    int n = sizeof(A)/sizeof(int);
    print_arr(A, n);
    delete_dupX(A, &n, 5);
    print_arr(A, n);

    getch();
}

//Delete element is duplicated with X
int delete_dupX(int A[], int *n, int x)
{
    int i, j;
    int res = -1;
    for(i = *n-1; i >= 0; i--)
    {
        if(A[i] == x)
        { 
            for(j = i; j < *n-1; j++)
            {
                A[j] = A[j+1];
            }
            (*n)--;
            res = 0;
        }
    }
    return res;
}

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

Kết quả:

=============================
A[0] = 5
A[1] = 10
A[2] = 15
A[3] = 1
A[4] = 5
A[5] = 4
A[6] = 0
A[7] = 5
A[8] = 6
=============================
A[0] = 10
A[1] = 15
A[2] = 1
A[3] = 4
A[4] = 0
A[5] = 6

1 Comment on Xóa các phần tử trùng với x trong mảng 1 chiều

Leave a Reply