Bài 4.3Viết chương trình cho phép người dùng nhập vào từ bàn phím một dãy các số thực, sau đó cho phép người dùng:
a.      Loại bỏ các phần tử trùng nhau để nhận được một dãy mới mà mỗi giá trị chỉ xuất hiện một lần,
b.      Sắp xếp dãy mới nhận được ở câu a theo chiều tăng dần (hoặc giảm dần),
c.      Cho người dùng nhập vào từ bàn phím một giá trị x, hãy bổ sung x vào dãy nhận được từ ý b sao cho không làm ảnh hưởng đến tính tăng (hoặc giảm) của dãy. 


//Câu 4.3.(a,b,c):
#include <stdio.h>

//===chuong trinh chinh===
int main(void)
{
float a[50],x;
int n,i,j,k;

printf("Nhap vao so luong phan tu cua day so: ");scanf("%d",&n);

//Nhap vao day so thuc
printf("Nhap vao day so:\n");
for(i=0;i<n;i++)
{
printf("\ta[%d] = ",i+1);
scanf("%f",&a[i]);
}

//Dua ra day so da nhap
printf("Day so da nhap la: ");
for(i=0;i<n;i++) printf("%.2f ",a[i]);

//ý a. Loại bỏ các phần tử trùng nhau để nhận được một dãy mới mà mỗi giá trị chỉ xuất hiện một lần,
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(a[j]==a[i])
do
{
for(k=j;k<n;k++) a[k]=a[k+1]; n--;
}
while(a[j]==a[i]);

//Dua ra day so sau khi loai bo cac phan tu trung nhau
printf("\nDay so da loai cac phan tu trung nhau la: ");
for(i=0;i<n;i++) printf("%.2f ",a[i]);

//ý b. Sắp xếp dãy mới nhận được ở câu a theo chiều tăng dần
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
{
if(a[j]<a[i])
{
float tg = a[i];
a[i]=a[j];
a[j]=tg;
}
}
//Dua ra day so da sap xep
printf("\nDay so tang dan la: ");
for(i=0;i<n;i++) printf("%.2f ",a[i]);

//ý c Chen x vao day so ma ko lam anh huong den day tang
printf("\nNhap vao gia tri cua so x can chen: ");scanf("%f",&x);
n++;
for(i=0;i<n-1;i++)
{
//Neu trong day so co so lon hon x
if(a[i]>=x)
{
for(j=n;j>=i;j--) a[j]=a[j-1];
a[i]=x;
break;
}
//Neu trong day so khong co so nao lon hon x
if(a[n-2]<x)
{
a[n-1]=x;
break;
}
}

//Dua ra day so da chen them x
printf("Day so da chen them x la: ");
for(i=0;i<n;i++) printf("%.2f ",a[i]);

return 0;
}
//===dinh nghia ham===
Coding: Hải Dớ