Computer >> 컴퓨터 >  >> 프로그램 작성 >> C 프로그래밍

C 언어로 배열의 정렬된 고유 요소 인쇄

<시간/>

정수 요소의 배열이 주어지면 중복 값을 제거하고 고유한 요소를 정렬된 방식으로 인쇄하는 것이 작업입니다.

다음은 정수 유형 값을 4, 6, 5, 3, 4, 5, 2, 8, 7 및 0 형식으로 저장하는 배열입니다. 결과는 정렬된 요소를 0, 2, 3, 4, 4, 5, 5, 6, 7 및 8 그러나 이 결과에는 제거해야 하는 중복 값 4 및 5가 여전히 포함되어 있으며 최종 결과는 0, 2, 3, 4, 5, 6, 7 및 8이 됩니다.

C 언어로 배열의 정렬된 고유 요소 인쇄

예시

Input: array[] = {4, 6, 5, 3, 4, 5, 2, 8, 7, 0}
Output: 0 2 3 4 5 6 7 8

설명

따라서 결과를 달성하기 위해

  • 고유한 요소를 가져와서 다른 배열 array1에 저장합니다.
  • 배열 정렬1.
  • array1의 값을 출력합니다.

알고리즘

START
   STEP 1: DECLARE VARIABLES i, j, array1[size], temp, count = 0
   STEP 2: LOOP FOR i = 0 AND i < size AND i++
      LOOP FOR j = i+1 AND j < size AND j++
         IF array[i] == array[j]) then,
            break
         END IF
      END FOR
      IF j == size then,
         ASSIGN array1[count++] WITH array[i]
      END IF
   END FOR
   STEP 3: LOOP FOR i = 0 AND i < count-1 AND i++
      LOOP FOR j = i+1 AND j < count AND j++
         IF array1[i]>array1[j] then,
            SWAP array1[i] AND array[j]
         END IF
      END FOR
   END FOR
   STEP 4: PRINT array1
STOP


예시

#include <stdio.h>
/* Prints distinct elements of an array */
void printDistinctElements(int array[], int size) {
   int i, j, array1[size], temp, count = 0;
   for(i = 0; i < size; i++) {
      for(j = i+1; j < size; j++) {
         if(array[i] == array[j]) {
            /* Duplicate element found */
            break;
         }
      }
      /* If j is equal to size, it means we traversed whole
      array and didn't found a duplicate of array[i] */
      if(j == size) {
         array1[count++] = array[i];
      }
   }
   //sorting the array1 where only the distinct values are stored
   for ( i = 0; i < count-1; i++) {
      for ( j = i+1; j < count; j++) {
         if(array1[i]>array1[j]) {
            temp = array1[i];
            array1[i] = array1[j];
            array1[j] = temp;
         }
      }
   }
   for ( i = 0; i < count; ++i) {
      printf("%d ", array1[i]);
   }
}
int main() {
   int array[] = {4, 6, 5, 3, 4, 5, 2, 8, 7, 0};
   int n = sizeof(array)/sizeof(array[0]);
   printDistinctElements(array, n);
   return 0;
}

출력

위의 프로그램을 실행하면 다음과 같은 출력이 생성됩니다.

0 2 3 4 5 6 7 8