/* */

Hi, I am

Ngô Tôn

I am a programmer.

Home / Programming / C/C++ / Xóa phần tử có giá trị gần X nhất

Xóa phần tử có giá trị gần X nhất

Yêu cầu:

– Nhập vào giá trị X. Viết hàm xoá phần tử có giá trị gần X nhất.
Ví dụ: cho x = 5 và dãy số: 1 3 -9 0 4 6 7 8. Phần tử gần x = 5 nhất là: 4 và 6. Dãy số sau khi xóa sẽ là: 1 3 -9 0 7 8

Thuật toán:

– Tìm độ lệch nhỏ nhất giữa x và A[i].

– Xóa phần tử bằng cách dồn phần tử.

Code:

/************************************************************
#include <stdio.h>
#include <conio.h>
#include <math.h>

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

void main()
{
int A[] = {1, 4, -9, 0, 6, 6, 8, 4};
int n = sizeof(A)/sizeof(int);
printf("\nMang truoc khi xoa ");
print_arr(A, n);
del_apro_x(A, &n, 5);
printf("\nMang sau khi xoa ");
print_arr(A, n);
getch();
}
void del_apro_x(int A[], int* n, int x)
{
int i, j;
int delta = abs(x - A[0]);
//Tim do lech gan nhat cua x va cac phan tu trong mang
for(i = 1; i < *n - 1;i++)
{
if(delta > abs(x - A[i]))
delta = abs(x - A[i]);
}
//Duyet mang tu phan tu cuoi
for(i = *n - 1; i >= 0; i--)
{
if(delta == abs(x - A[i]))
{
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ả:

Yêu cầu: – Nhập vào giá trị X. Viết hàm xoá phần tử có giá trị gần X nhất. Ví dụ: cho x = 5 và dãy số: 1 3 -9 0 4 6 7 8. Phần tử gần x = 5 nhất là: 4 và 6. Dãy số sau khi xóa sẽ là: 1 3 -9 0 7 8 Thuật toán: – Tìm độ lệch nhỏ nhất giữa x và A[i]. – Xóa phần tử bằng cách dồn phần tử. Code: Kết quả: [crayon-5befbfaa5a7df906578380/]

User Rating: 5 ( 1 votes)

About ngoton

Ngô Tôn is a programmer. He is crazy about new gadgets and up to date with latest technology trends. Use comments to notify any issues you are facing.

Check Also

Xây dựng một lớp Time mô tả thông tin về giờ, phút giây

Yêu cầu: Xây dựng một lớp Time mô tả thông tin về giờ, phút giây. …

Leave a Reply

Your email address will not be published. Required fields are marked *