政务公开加强网站建设,长春微信公众号开发,网络营销渠道有哪几种,怎么做网站的内链已知平行四边形面积函数的原型如下#xff1a;
函数原型
double ParaArea(double base, double height);
说明#xff1a;参数 base 和 height 分别为平行四边形的底和高#xff0c;函数值为平行四边形的面积。
请在空白处填写适当内容#xff0c;用带参数的宏替换命令…已知平行四边形面积函数的原型如下
函数原型
double ParaArea(double base, double height);
说明参数 base 和 height 分别为平行四边形的底和高函数值为平行四边形的面积。
请在空白处填写适当内容用带参数的宏替换命令来实现相同的功能。
裁判程序
#include stdio.h__________int main(){ double a, b, c;scanf(%lg%lg, a, b);c ParaArea(a, b);printf(%g\n, c);return 0; }
注裁判程序有很多不止一个。
输入样例
2.5 1.4
输出样例
3.5 解题代码很简单
#define ParaArea(a,b) ((a)*(b)*1.0) 不过即使这样这道题仍有可注意之处
它scanf和printf中用的是%lg和%g这是啥
%lg和%g都是C语言中的格式化输出符号用于输出浮点数。其中%lg可以自动选择以实数形式输出或者是以科学计数法输出而%g则会根据数值的大小自动选择以实数形式输出或者是以科学计数法输出
在这道题中%lg和%g的作用是相同的都是用于读取输入的浮点数。具体来说%lg可以读取任意类型的浮点数包括float、double和long double而%g只能读取float和double类型的浮点数
那么为什么要加1.0呢
这是因为在C语言中除法运算的结果可能是整数而我们需要将其转换为浮点数。如果我们不乘以1.0那么结果就会被截断为整数从而导致精度丢失。
总而言之这道题确实一开始容易让人摸不着头脑因为它没太说清楚我们要干什么在此多谢好友迟暮的代码分享也希望能帮到更多的人。