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

C 프로그램에서 합이 k보다 작거나 같은 삼중항 인쇄


요소 세트가 있는 배열이 주어지고 작업은 합계가 k보다 작거나 같은 정확히 3개의 요소가 있는 세트를 찾는 것입니다.

입력 - arr[]={1,2,3,8,5,4}

출력 − 세트 → {1, 2, 3} {1, 2, 5} {1, 2, 4} {1, 3, 5} {1, 3, 4} {1, 5, 4} {2, 3, 5} {2, 3, 4}

여기에서 첫 번째 작업은 i의 for 루프가 크기-2까지 반복되고 j의 for 루프가 크기-1까지 반복되고 k의 for 루프가 크기가 될 때까지 반복되는 것에 따라 배열의 크기를 계산하는 것입니다.

알고리즘

START
Step 1 -> declare int variable sum to k (e.g. 10), i, j, k
Step 2 -> declare and initialise size with array size using sizeof(arr)/sizeof(arr[0])
Step 3 -> Loop For i to 0 and i<size-2 and i++
   Loop For j to i+1 and j<size-1 and j++
      Loop For k to j+1 and k<size and k++
         IF arr[i]+ arr[j] + arr[k] <= sum
            Print arr[i] and arr[j] and arr[k]
         End IF
      End Loop for
   End Loop For
Step 4 -> End Loop For
STOP

예시

#include <stdio.h>
int main(int argc, char const *argv[]) {
   int arr[] = {1, 2, 3, 8, 5, 4};
   int sum = 10;
   int i, j, k;
   int size = sizeof(arr)/sizeof(arr[0]);
   for (i = 0; i < size-2; i++) {
      for (j = i+1; j < size-1; j++) {
         for (k = j+1; k < size; k++) {
            if( arr[i]+ arr[j] + arr[k] <= sum )
               printf( "{%d, %d, %d}\n",arr[i], arr[j], arr[k] );
         }
      }
   }
   return 0;
}

출력

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

{1, 2, 3}
{1, 2, 5}
{1, 2, 4}
{1, 3, 5}
{1, 3, 4}
{1, 5, 4}
{2, 3, 5}
{2, 3, 4}