Untitled

mail@pastecode.io avatar
unknown
plain_text
2 years ago
1.5 kB
2
Indexable
Never
#include<stdio.h>
#include<stdlib.h>

void NhapMang(int* a, int n)
{
	for (int i = 0; i < n; i++)
	{
		printf("\na[%d]= ", i);
		scanf_s("%d", &a[i]);
	}
}

void XuatMang(int* a, int n)
{
	for (int i = 0; i < n; i++)
	{
		printf("%4d", a[i]);
	}
	printf("\n");
}

void XoaPhanTu(int*& a, int &n, int vitrixoa)
{
	for (int i = vitrixoa + 1; i < n; i++)
	{
		a[i - 1] = a[i];
	}
	n--;
	a = (int*)realloc(a, n * sizeof(int*));
}

void ThemPhanTu(int*& a, int& n, int vitrithem, int phantuthem)
{
	a = (int*)realloc(a, (n + 1) * sizeof(int));

	for (int i = n - 1; i >= vitrithem; i++)
	{
		a[i + 1] = a[i];
	}
	a[vitrithem] = phantuthem;
	n++;
}

void XoaPhanTuTrong1Khoang(int*& a, int &n, int chisox, int chisoy) // xóa phần tử từ vị trí x đến vị trí y-1.
{
	if (chisox > chisoy)
	{
		printf("\ngia tri khong hop le, vui long kiem tra lai !");
		exit(0);
	}

	int h = chisoy - chisox; // h là hiệu của chỉ số y trừ cho chỉ số x.

	for (int i = chisoy; i < n; i++)
	{
		a[i - h] = a[i];
	}

	n -= h;

	a = (int*)realloc(a, n * sizeof(int*));
}

int main()
{
	int n; // n = 6. 
	printf("\nnhap vao so luong phan tu cua mang: ");
	scanf_s("%d", &n);

	int* a = (int*)malloc(n*sizeof(int));
	NhapMang(a, n);
	XuatMang(a, n);

	XoaPhanTuTrong1Khoang(a, n, 1, 3);
	printf("\nmang sau khi xoa phan tu 1 den 2 la: ");
	XuatMang(a, n);

	printf("\na[4]= %d , a[5]= %d", a[4],a[5]);
	free (a);

	return 0;
}