관리 메뉴

사적공간

가까운 수 구하기 본문

자격증/정보처리기사_실기

가까운 수 구하기

2sac 2024. 4. 9. 09:59

열 개의 한 자리 정수를 배열에 입력받고, 배열에 저장된 값 중 7과 가장 근사한 값을 찾는 알고리즘. 배열에 저장된 수들 중에 두 개 이상의 수가 모두 같은 근사치를 가지고 있다면 나중에 확인한 값을 근사값으로 봄. 

#define CONST 7
#include <stdio.h>
main()
{
    int i,j,k,r,L,m;
    int a[10];
    i = -1;
    do {
        i++;
        r=i+1;
        printf("(%d). 1의 자리 정수 10개를 입력하시오: ", r);
        scanf("%d", &a[i]);
    } while(i < 9);
    j = 9;
    for (k = 0; k <=9; k++) {
        if(a[k] >= CONST)
            L = a[k] - CONST; // L은 7과 배열에 저장된 수의 차를 저장하는 변수 
        else
            L = CONST - a[k];
        
        if(L <= j) //이전에 저장된 L(j)와 현재 순회하는 L을 비교해서 더 작거나 같은 값이면 근사값으로 봄  
        {
            j=L;
            m=a[k];
        }
            
    }   printf("배열에 저장된 수 중 7의 근사값은 : %d", m);
}

(1). 1의 자리 정수 10개를 입력하시오: 4
(2). 1의 자리 정수 10개를 입력하시오: 2
(3). 1의 자리 정수 10개를 입력하시오: 9
(4). 1의 자리 정수 10개를 입력하시오: 5
(5). 1의 자리 정수 10개를 입력하시오: 1
(6). 1의 자리 정수 10개를 입력하시오: 0
(7). 1의 자리 정수 10개를 입력하시오: 0
(8). 1의 자리 정수 10개를 입력하시오: 0
(9). 1의 자리 정수 10개를 입력하시오: 0
(10). 1의 자리 정수 10개� 입력하시오: 0
배열에 저장된 수 중 7의 근사값은 : 5

'자격증 > 정보처리기사_실기' 카테고리의 다른 글

선택정렬  (0) 2024.04.16
보수 구하기  (0) 2024.04.09
[작성 중] 소수점이 있는 2진수를 10진수로 변환  (0) 2024.04.08
진법 변환하기 (10진수 -> 2 진수)  (0) 2024.04.08
소인수 구하기  (0) 2024.04.08