函数题:实数零的校正
计算机中的实数零存在符号问题:有“正零”和“负零”之分,需要统一校正为“正零”。此外,计算结果本应为零,但却因误差造成结果为绝对值非常小的非零值。因此,有必要设定一个误差阈值 \varepsilon,凡绝对值小于 \varepsilon 的实数一律按零处理。
请编写函数,对实数零进行校正。
#### 函数原型
c
double Revise(double x);
说明:参数 x 是任意实数。若 x 的绝对值小于 $$\varepsilon$$,则函数值为 0.0;否则函数值与 x 相同。
暂且将误差阈值设为 $$\varepsilon = 10^{-8}$$。若实数的绝对值小于 $$\varepsilon$$,则将其修正为零,否则实数值不变。
#### 裁判程序
c
#include <stdio.h>
#include <math.h>
#define epsilon 1e-8
double Revise(double x);
int main()
{
double a, b;
scanf("%lg", &a);
b = Revise(a);
printf("%.15g\n", b);
return 0;
}
/* 你提交的代码将被嵌在这里 */
注:epsilon 为误差阈值。
#### 输入样例
in
-0
#### 输出样例
out
0
其它测试样例
<table>
<tr>
<td align="center">输入样例</td>
<td align="center">输出样例</td>
</tr>
<tr>
<td>1000</td>
<td>1000</td>
</tr>
<tr>
<td>-1000</td>
<td>-1000</td>
</tr>
<tr>
<td>1</td>
<td>1</td>
</tr>
<tr>
<td>-1</td>
<td>-1</td>
</tr>
<tr>
<td>0.0001</td>
<td>0.0001</td>
</tr>
<tr>
<td>-0.0001</td>
<td>-0.0001</td>
</tr>
<tr>
<td>0.000000000001</td>
<td>0</td>
</tr>
<tr>
<td>-0.000000000001</td>
<td>0</td>
</tr>
</table>
注:显然不同领域里的实数绝对值相差很大,误差阈值也因此各不相同的。在此我们只从学习的角度简单地使用统一的误差阈值。
---
相关习题:判断相等、不等、大于、小于、大于等于、小于等于;交换;舍入、截断等。
答案:若无答案欢迎评论
请编写函数,对实数零进行校正。
#### 函数原型
c
double Revise(double x);
说明:参数 x 是任意实数。若 x 的绝对值小于 $$\varepsilon$$,则函数值为 0.0;否则函数值与 x 相同。
暂且将误差阈值设为 $$\varepsilon = 10^{-8}$$。若实数的绝对值小于 $$\varepsilon$$,则将其修正为零,否则实数值不变。
#### 裁判程序
c
#include <stdio.h>
#include <math.h>
#define epsilon 1e-8
double Revise(double x);
int main()
{
double a, b;
scanf("%lg", &a);
b = Revise(a);
printf("%.15g\n", b);
return 0;
}
/* 你提交的代码将被嵌在这里 */
注:epsilon 为误差阈值。
#### 输入样例
in
-0
#### 输出样例
out
0
其它测试样例
<table>
<tr>
<td align="center">输入样例</td>
<td align="center">输出样例</td>
</tr>
<tr>
<td>1000</td>
<td>1000</td>
</tr>
<tr>
<td>-1000</td>
<td>-1000</td>
</tr>
<tr>
<td>1</td>
<td>1</td>
</tr>
<tr>
<td>-1</td>
<td>-1</td>
</tr>
<tr>
<td>0.0001</td>
<td>0.0001</td>
</tr>
<tr>
<td>-0.0001</td>
<td>-0.0001</td>
</tr>
<tr>
<td>0.000000000001</td>
<td>0</td>
</tr>
<tr>
<td>-0.000000000001</td>
<td>0</td>
</tr>
</table>
注:显然不同领域里的实数绝对值相差很大,误差阈值也因此各不相同的。在此我们只从学习的角度简单地使用统一的误差阈值。
---
相关习题:判断相等、不等、大于、小于、大于等于、小于等于;交换;舍入、截断等。
答案:若无答案欢迎评论