-->
当前位置:首页 > 题库 > 正文内容

函数题:顺序表 - 1. 创建项目

Luz3年前 (2022-04-05)题库923
请按下列步骤完成实数线性表的设计。

创建文件夹“线性表”,然后在该文件夹中创建工程项目。再将“实数”文件夹中的“Real.h”和“Real.c”复制到“线性表”文件夹中,并将它们添加到工程项目中。

说明:由于计算机中的实数存在误差,因此实数的零需要修正,实数比较时要考虑误差,此外实数的交换也是常用的功能,因此在“Real.h”和“Real.c”中设计了以下函数。

*Real.h*
c
#ifndef _Real_h_
#define _Real_h_

#define epsilon 1e-8

double Revise(double x);

void RealInput(double *x);
void RealOutput(double x);

int RealGt(double x, double y);
int RealGe(double x, double y);
int RealLt(double x, double y);
int RealLe(double x, double y);
int RealEq(double x, double y);
int RealNe(double x, double y);

void RealSwap(double *x, double *y);

#endif


其中:
- epsilon 为误差阈值 $$\epsilon$$。

- Revise 校正实数零。计算机中的实数零存在符号问题:有“正零”和“负零”,需要统一修正为“正零”。其次由于误差的原因,计算结果本应是零,但实际上却是一个绝对值非常小的非零值,需要将绝对值小于 $$\epsilon$$ 的实数一律按零处理。

- 若 x 的绝对值非常小,则函数值为 0.0;否则函数值与 x 相同。

- RealInput 输入实数。

- 输入实数到指针 x 所指示的变量中。若所输入的实数的绝对值小于 $$\epsilon$$,则按零处理。

- RealOutput 输出实数。

- 输出实数 x 的值,要求输出 6 位有位数字,且不显示小数末尾无意义的 0 和小数点。

- RealGt、RealGe、RealLt、RealLe、RealEq 和 RealNe 用于比较两个实数的大小(要求:当两个实数非常接近,即:$$\mid x - y \mid < \epsilon$$ 时,认为它们是相等的)。

- 若 x 大于 y,则 RealGt 函数值为 1(真),否则为 0(假)。
- 若 x 大于等于 y,则 RealGe 函数值为 1(真),否则为 0(假)。
- 若 x 小于 y,则 RealLt 函数值为 1(真),否则为 0(假)。
- 若 x 小于等于 y,则 RealLe 函数值为 1(真),否则为 0(假)。
- 若 x 等于 y,则 RealEq 函数值为 1(真),否则为 0(假)。
- 若 x 不等于 y,则 RealNe 函数值为 1(真),否则为 0(假)。

- RealSwap 交换实数的值。

- 函数交换两个指针 x 和 y 所指实型变量的值。

*Real.c*
c
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include "Real.h"

/* 你提交的代码将被嵌在这里 */


打开“main.c”,修改主函数对以上函数进行测试。

*main.c*
c
#include <stdio.h>
#include "Real.h"

int main()
{
double a, b, c, d;
RealInput(&a);
RealInput(&b);
c = Revise(a + b);
RealInput(&d);
RealOutput(c);
putchar(' ');
RealOutput(d);
putchar('\n');
if (RealGt(c, d))
{
puts("c > d");
}
if (RealGe(c, d))
{
puts("c >= d");
}
if (RealLt(c, d))
{
puts("c < d");
}
if (RealLe(c, d))
{
puts("c <= d");
}
if (RealEq(c, d))
{
puts("c == d");
}
if (RealNe(c, d))
{
puts("c != d");
}
RealSwap(&c, &d);
RealOutput(c);
putchar(' ');
RealOutput(d);
putchar('\n');
return 0;
}


#### 输入样例1
in
0.3 0.6
0.9

#### 输出样例1
out
0.9 0.9
c >= d
c <= d
c == d
0.9 0.9


#### 输入样例2
in
0.4 0.5
0.8

#### 输出样例2
out
0.9 0.8
c > d
c >= d
c != d
0.8 0.9


#### 输入样例3
in
0.2 0.3
0.6

#### 输出样例3
out
0.5 0.6
c < d
c <= d
c != d
0.6 0.5



---

相关项目:实数类型。






答案:若无答案欢迎评论

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。