Cố gắng xóa các số giống nhau có trong một mảng. Mảng kết quả bao gồm các phần tử duy nhất.
Lôgic để xóa các phần tử trùng lặp trong một mảng như sau -
for(i=0;i<number;i++){ for(j = i+1; j < number; j++){ if(a[i] == a[j]){ for(k = j; k <number; k++){ a[k] = a[k+1]; } j--; number--; } } }
Logic để hiển thị các số sau khi xóa các bản sao như sau -
for(i=0;i<number;i++){ printf("%d ",a[i]); }
Chương trình
Sau đây là chương trình C để xóa các phần tử trùng lặp trong một mảng.
#include<stdio.h> #include<stdlib.h> int main(){ int a[50],i,j,k, count = 0, dup[50], number; printf("Enter size of the array\n"); scanf("%d",&number); printf("Enter Elements of the array:\n"); for(i=0;i<number;i++){ scanf("%d",&a[i]); dup[i] = -1; } printf("Entered element are: \n"); for(i=0;i<number;i++){ printf("%d ",a[i]); } for(i=0;i<number;i++){ for(j = i+1; j < number; j++){ if(a[i] == a[j]){ for(k = j; k <number; k++){ a[k] = a[k+1]; } j--; number--; } } } printf("\nAfter deleting the duplicate element the Array is:\n"); for(i=0;i<number;i++){ printf("%d ",a[i]); } }
Đầu ra
Khi chương trình trên được thực thi, nó tạo ra kết quả sau -
Enter size of the array 10 Enter Elements of the array: 1 1 2 4 3 5 6 5 7 1 Entered element are: 1 1 2 4 3 5 6 5 7 1 After deleting the duplicate element, the Array is: 1 2 4 3 5 6 7