Xóa phần tử có giá trị lớn nhất trong mảng

Yêu cầu:

– Xóa phần tử có giá trị lớn nhất trong mảng.

Thuật toán:

– Tìm vị trí của phần tử lớn nhất trong mảng.

– Xóa phần tử đó bằng cách dồn các phần tử đi sau nó: A[i] = A[i+1]

Code:

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

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

void main()
{
    int A[] = {1, 4, -9, 0, 7, 11, 8, 4};
    int n = sizeof(A)/sizeof(int);
    print_arr(A, n);
    del_max_in_arr(A, &n);
    print_arr(A, n);
    getch();
}
void del_max_in_arr(int A[], int* n)
{
    int i;
    int max_pos = 0;
    int max = A[0];
    // find max value and position's
    for(i = 1; i < *n; i++)
    {
        if(max < A[i])
        {
            max = A[i];
            max_pos = i;
        }
    }
    for(i = max_pos; i < *n; i++)
    {
        A[i] = A[i+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] = 1
A[1] = 4
A[2] = -9
A[3] = 0
A[4] = 7
A[5] = 8
A[6] = 4
=========================

Be the first to comment

Leave a Reply