问题遇到的现象和发生背景 由于实数有误差,因此判断两个实数“相等”时要考虑误差因素:当两个实数之差的绝对值小于指定的精度时,就认为它们“相等”,否x 和 y 是两个实数,若它们“相等”,则函数值为 1 (真),否则为 0 (假)则就认为它们“不等”
#include <stdio.h>
#include <math.h>
#define epsilon 1e-8
int RealEq(double x, double y);
int main()
{
double a, b;
scanf("%lg%lg", &a, &b);
if (RealEq(a, b))
{
puts("Yes");
}
else
{
puts("No");
}
return 0;
}
/* 你提交的代码将被嵌在这里 */
入口:int RealEq(double x, double y)
问题相关代码,请勿粘贴截图 int RealEq(double x, double y)
{
double a=x-y;
if(a>0&&a<=epsilon) return 1;
else if(a=0) return 1;
else if(a<0&&-a<=epsilon) return 1;
else return 0;
}