Computer >> Máy Tính >  >> Lập trình >> lập trình C

C Chương trình xóa các phần tử trùng lặp trong một mảng

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