제목 : 가까운 값(근사값;NEAR) 알고리즘
글번호:
|
|
263
|
작성자:
|
|
레드플러스
|
작성일:
|
|
2006/10/19 오전 2:17:07
|
조회수:
|
|
13192
|
// 가까운값 : 차이의 최소값
#include <stdio.h>
#include <math.h> // abs() : 절대값
#include <limits.h> //INT_MAX : 정수형이 가질 수 있는 가장 큰 값 : +21억
void main(void)
{
//[1] Init/Input
//원본 데이터
int intData[] = {33, 23, 22, 34, 36};
//가까운값 알고리즘
//타겟 데이터 : 주어진 값(이 값에 가장 가까운 데이터 검색)
int intTargetData = 1;
int intDiff = 0;//차이값
int intDiffMin = INT_MAX;//차이 최소값
int intNear = 0;//가까운 값
int i = 0;
//[2] Process
//가까운값(근사값;NEAR) 알고리즘 적용
for(i = 0;i < 5;i++)
{
intDiff = intData[i] - intTargetData;
if(abs(intDiffMin) > abs(intDiff))
{
intDiffMin = intDiff;
intNear = intData[i];
}
}
//[3] Output
printf("원본 데이터 : \n");
for(i = 0;i < 5;i++)
{
printf("%d ", intData[i]);
}
printf("\n%d와 가장 가까운 값 : %d\n"
, intTargetData, intNear);
}