이번 포스팅은 두 개의 부동 소수점 일치를 판별하는 함수를 작성해보았습니다.
먼저 부동 소수점을 판별하는 방법은 아래와 같은데요.
따라서 절대값을 반환하는 함수와 두 수를 비교해서 최소값을 구하는 함수를 추가로 작성해서
최종적으로 부동 소수점 판별 함수에 활용하였습니다.
판별 함수에서 e는 0.000001로 정의하였고, 위 식이 성립하는 경우 즉, 두 개의 부동 소수점 수가 근사적으로 같은 값이면 1을 반환하고, 근사적으로 같지 않으면 0을 넘겨주도록 구성하였습니다.
#define _CRT_SECURE_NO_WARNINGS
#define e 0.000001
#include<stdio.h>
double f_abs(double num); // 절대값 반환 함수
double f_min(double x, double y); // 최소값 반환 함수
int f_equal(double x, double y); // 부동 소수점 근사값 계산 함수
int main(void)
{
double x, y, z;
printf("실수를 입력하시오: ");
scanf("%lf", &x);
printf("실수를 입력하시오: ");
scanf("%lf", &y);
z = f_equal(f_abs(x-y), f_min(f_abs(x),f_abs(y)));
if (z == 1)
{
printf("두 개의 실수는 서로 같음\n");
}
else
{
printf("두 개의 실수는 서로 다름\n");
}
return 0;
}
double f_abs(double num)
{
if (num < 0)
{
return num * -1;
}
else
{
return num * 1;
}
}
double f_min(double x, double y)
{
if (x < y)
{
return x;
}
else if(x >y)
{
return y;
}
else
{
return x; // x와 y가 같은 경우 둘 중 x값만 반환한다.
}
}
int f_equal(double x, double y)
{
if (x / y < e)
{
return 1;
}
else
{
return 0;
}
}
반응형
'코딩 | 개념 정리 > C' 카테고리의 다른 글
[C언어] 함수를 활용해 소득세 계산하기 2 (0) | 2021.04.14 |
---|---|
[C언어] 함수를 활용한 계산기 만들기 (0) | 2021.04.14 |
[C언어] 함수를 활용해 동전 던지기 게임 구현하기 (0) | 2021.04.12 |
[C언어] 함수를 활용해 오일러의 수 구하기 (0) | 2021.04.12 |
[C언어] 함수를 활용해 2부터 100 사이의 소수 출력하기 (0) | 2021.04.12 |