用带参数的宏替换命令来实现相同的功能。
已知平方函数的原型如下:函数原型
double Sqr(double x);
说明:参数 x 是任意实数,函数值为 x 的平方 x
2
。
请在空白处填写适当内容,用带参数的宏替换命令来实现相同的功能。
裁判程序
#include <stdio.h>
__________
int main()
{
double a, b;
scanf("%lg", &a);
b = Sqr(a);
printf("%g\n", b);
return 0;
}
注:裁判程序有很多,不止一个。
输入样例
-0.7
输出样例
0.49
要求:不要使用 C 标准库函数如 pow 等。
这题怎么写 #define Sqr(x) ((x) * (x))
#include <stdio.h>
int main()
{
double a, b;
scanf("%lg", &a);
b = Sqr(a);
printf("%g\n", b);
return 0;
}
宏替换是在预处理阶段进行的,因此将函数原型中的 Sqr 替换为带参数的宏 Sqr(x) ((x) * (x)) 可以实现相同的功能。在主函数中,输入一个 double 类型的值 a,然后通过 Sqr 宏计算其平方并赋给变量 b,最后输出 b 的值。
#include <stdio.h>
#define Sqr(x) ((x) * (x)) // 定义带参数的宏Sqr来表示平方函数
int main()
{
double a, b;
scanf("%lg", &a); // 读入输入值
b = Sqr(a); // 使用宏来计算平方值
printf("%g\n", b); // 输出结果
return 0;
}
这段代码中,我们使用带参数的宏Sqr(x)来表示平方函数,然后在主程序中通过宏来计算输入值的平方并输出结果。
希望这样的回答对你有所帮助。
页:
[1]