鱼C论坛

 找回密码
 立即注册
查看: 725|回复: 2

[已解决]用带参数的宏替换命令来实现相同的功能。

[复制链接]
发表于 2023-11-18 23:09:01 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
已知平方函数的原型如下:

函数原型
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 等。


这题怎么写
最佳答案
2023-11-18 23:09:08
  1. #define Sqr(x) ((x) * (x))

  2. #include <stdio.h>

  3. int main()
  4. {
  5.     double a, b;
  6.     scanf("%lg", &a);
  7.     b = Sqr(a);
  8.     printf("%g\n", b);
  9.     return 0;
  10. }
复制代码


宏替换是在预处理阶段进行的,因此将函数原型中的 Sqr 替换为带参数的宏 Sqr(x) ((x) * (x)) 可以实现相同的功能。在主函数中,输入一个 double 类型的值 a,然后通过 Sqr 宏计算其平方并赋给变量 b,最后输出 b 的值。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-11-18 23:09:08 | 显示全部楼层    本楼为最佳答案   
  1. #define Sqr(x) ((x) * (x))

  2. #include <stdio.h>

  3. int main()
  4. {
  5.     double a, b;
  6.     scanf("%lg", &a);
  7.     b = Sqr(a);
  8.     printf("%g\n", b);
  9.     return 0;
  10. }
复制代码


宏替换是在预处理阶段进行的,因此将函数原型中的 Sqr 替换为带参数的宏 Sqr(x) ((x) * (x)) 可以实现相同的功能。在主函数中,输入一个 double 类型的值 a,然后通过 Sqr 宏计算其平方并赋给变量 b,最后输出 b 的值。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-11-18 23:09:34 | 显示全部楼层
  1. #include <stdio.h>
  2. #define Sqr(x) ((x) * (x)) // 定义带参数的宏Sqr来表示平方函数
  3. int main()
  4. {
  5.     double a, b;
  6.     scanf("%lg", &a); // 读入输入值
  7.     b = Sqr(a); // 使用宏来计算平方值
  8.     printf("%g\n", b); // 输出结果
  9.     return 0;
  10. }
复制代码

这段代码中,我们使用带参数的宏Sqr(x)来表示平方函数,然后在主程序中通过宏来计算输入值的平方并输出结果。

希望这样的回答对你有所帮助。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-20 19:47

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表