Xóa tất cả các phần tử nhỏ hơn x

Yêu cầu:

– Nhập vào giá trị X. Viết hàm xoá tất cả các phần tử có giá trị nhỏ hơn X.

Thuật toán:

– Kiểm tra điều kiện: A[i] < x và xóa phần tử A[i].

Code:

/************************************************************
* Author: VNCODING
* History 
* 2014/10/23 first create VNCODING
*************************************************************/
#include <stdio.h>
#include <conio.h>

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

void main()
{
    int A[] = {1, 4, -9, 0, 7, 11, 8, 4};
    int n = sizeof(A)/sizeof(int);
    print_arr(A, n);
    delete_below_x(A, &n, 7);
    print_arr(A, n);
    getch();
}

void delete_below_x(int A[], int* n, int x)
{
    int i, j;
    for(i = *n - 1; i >= 0; i--)
    {
        if(A[i] < x)
        {
            for(j = i; j < *n - 1; j++)
            {
                A[j] = A[j+1];
            }
            (*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ả:

=========================
A[0] = 1
A[1] = 4
A[2] = -9
A[3] = 0
A[4] = 7
A[5] = 11
A[6] = 8
A[7] = 4
=========================
=========================
A[0] = 7
A[1] = 11
A[2] = 8
=========================

2 Comments on Xóa tất cả các phần tử nhỏ hơn x

  1. bên kia em post nhầm bài a , e muốn hỏi cách làm này ấy ạ cái dùng for chạy ngược từ dưới lên kiểm tra xog rồi mới fix lại a cho e hỏi a dựa vào thuật toán nào ko ạ hay tự suy nghĩ ra ạ

Leave a Reply