Nhập vào X , xóa phần tử có giá trị gần X nhất.
Ví dụ : 1 2 3 4 5 6
X=3 , mảng sau khi xóa là 1 2 4 5 6
#include < stdio.h>
#include < conio.h>
#include< math.h>
#define MAX 100
void NhapMang(int[], int &);
void XuatMang(int[], int);
void NhapMang(int a[], int &n)
{
for (int i = 0; i < n; i++)
{
printf("\nNhap vao a[%d] = ", i);
scanf("%d", &a[i]);
}
}
void XuatMang(int a[], int n)
{
for (int i = 0; i < n; i++)
{
printf("%4d", a[i]);
}
}
void XoaPTMang(int a[], int &n, int vitri){
for (int i = vitri; i < n; i++){
a[i] = a[i + 1];
}
n--;
}
void XoaPTGanNhat(int a[], int &n, int x){
int delta = abs(x - a[0]),i;
for (int i = 0; i < n; i++){
if (delta>abs(x - a[i]))
delta = abs(x - a[i]);
}
for (int i = n; i >=0; i--){
if (delta == abs(x - a[i]))
XoaPTMang(a,n,i);
}
}
int main()
{
int a[MAX], n, k;
// Nhập vào số lượng phần tử của mảng.
do{
printf("\nNhap vao so luong phan tu cua mang: ");
scanf("%d", &n);
if (n < 0 || n > MAX)
{
printf("\nSo luong phan tu khong hop le. Xin kiem tra lai !");
}
} while (n < 0 || n > MAX);
NhapMang(a, n);
XuatMang(a, n);
printf("Nhap vao k");
scanf("%d", &k);
XoaPTGanNhat(a, n, k);
printf("\n Mang luc sau la \n");
XuatMang(a, n);
getch();
return 0;
}
Subscribe to:
Post Comments (Atom)

0 comments:
Post a Comment