#include
#include<conio.h>
void main()
{
int a[100],i,j,k,n;//khai báo
clrscr();//xóa màn hình
printf("\nBan hay nhap do lon cua mang:\n");
scanf("%d",&n);
printf("Bat dau nhap mang:\n");
for(i=0;i<n;i++)
{
printf("Nhap a[%d] = ",i);
scanf("%d",&a[i]);
}
printf("Mang sau khi sua lai la:\n");
for (i=0;i<n-1;i++)
{
for(j=i+1;j<n;j++)
{
if(a[i]==a[j])//trường hợp a[i]=a[j]
{
for( ;j<n;j++)
a[j]=a[j+1];//lặp gán phần tử a[i] bằng phần tử
kế tiếp a[i+1]
n--;//xóa phần tử trống cuối cùng sau khi lặp ở trên
j--;//giảm j để xét tiếp vị trí sau khi gán đã được
dịch chuyển lên trước nó
i--;//tương tự trên
}
}
}
for(i=0;i<n;i++)
printf(" %d ",a[i]);
getch();
}//main finish
Bài này cũng có một giải thuật khác là các bạn lấy từng phần tử trong mảng a[100] đưa sang mảng B[100] khác rồi kiểm tra xem các phần tử trong mảng b[100] đã có trong mảng a[100] chưa. Nếu chưa có thì lấy sang mảng b. Ngược lại thì kệ bà nó, khỏi cần lấy. Cuối cùng thì gán mảng b ngược lại mảng a rồi xuất nó ra là ổn thôi.
enjoy!
Có gì không hiểu thì pm lại cho mình nhé mình giải thích lại cho.
for( ;j<n;j++)
Trả lờiXóacho nay dieu kien dau tien cua j la sao vay a
ban oi,giai thich cho minhf thuat toan cua ban duoc ko
Trả lờiXóa