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

Chương trình C để tìm các phần tử duy nhất trong một mảng.

Vấn đề

Tìm phần tử không lặp lại trong một mảng bằng cách sử dụng hai vòng lặp. Một là dành cho phần tử hiện tại và phần còn lại là để kiểm tra xem một phần tử đã có trong một mảng hay chưa.

Giải pháp

Hãy xem xét một ví dụ được đưa ra bên dưới -

15, 15, 16, 15, 13, 15

Ở đây, các phần tử không lặp lại trong một mảng là 16 và 13.

Thuật toán

Tham khảo thuật toán đưa ra bên dưới để tìm các phần tử duy nhất hoặc không lặp lại trong một mảng.

Bước 1 - Khai báo một mảng và nhập các phần tử của mảng tại thời điểm chạy.

Bước 2 - Bắt đầu duyệt qua mảng và kiểm tra xem phần tử hiện tại đã có trong một mảng hay chưa.

Bước 3 - Nếu nó đã có trong một mảng thì hãy chuyển đến phần tử tiếp theo trong một mảng và tiếp tục.

Bước 4 - Nếu không, hãy xuất phần tử dưới dạng phần tử không lặp lại.

Ví dụ

Sau đây là chương trình C để tìm các phần tử duy nhất hoặc không lặp lại trong một mảng -

#include <stdio.h>
#include <stdlib.h>
int uniqueEle(int array[], int n){
   int i,j;
   int count = 1;
   for(i = 0; i < n; i++){
      for(j = 0; j < n; j++){
         if(array[i] == array[j] && i != j)
         break;
      }
      if(j == n ){
         printf("\nunique elements in an array is [%d] : %d \n",count,array[i]);
         ++count;
      }
   }
   return -1;
}
int main(){
   int n,i;
   printf("\nEnter no: of elements : ");
   scanf("%d",&n);
   int array[n];
   printf("\nenter the array elements : ");
   for(i = 0; i < n; i++){
      scanf("%d",&array[i]);
   }
   uniqueEle(array, n);
   return 0;
}

Đầu ra

Khi chương trình trên được thực thi, nó tạo ra kết quả sau -

Run 1:
Enter no: of elements: 5
enter the array elements :
11
11
15
16
13
unique elements in an array is [1] : 15
unique elements in an array is [2] : 16
unique elements in an array is [3] : 13
Run 2:
Enter no: of elements: 4
enter the array elements : 11
12
11
11
unique elements in an array is [1] : 12