【发布时间】:2016-10-23 21:02:02
【问题描述】:
double getcircleArea(int radius, double pi);
double getcircleArea(int radius = 1, double pi = 3.14)
{
return radius*radius*pi;
}
int main()
{
printf("area:%d\n", getcircleArea());
printf("area:%d\n", getcircleArea(10));
printf("area:%d\n", getcircleArea(15, 3.14159));
system("pause");
return 0;
}
只是一个简单的例子。
我得到结果:
地区:1374389535 面积:0 地区:-1408749273
我想要的是... 面积:3.14 面积:314 地区:706.85775
【问题讨论】:
-
一些有问题的事情 - >>
double getcircleArea(int radius = 1, double pi = 3.14)??并且不要在printf中将double传递给%d。在函数调用中传递 2 个参数。 -
%d 是整数。 %f 是双倍的。
-
@immibis 将 pi 作为参数传递仍然没有意义。
-
打开编译器警告,它应该会告诉您格式说明符与纯英语类型不匹配的情况。如果没有,请切换编译器。
-
@Bernhard:如果您的程序打印出针对
pi的不同近似值(例如 "if您使用 22/7,您的答案将是 X,但实际值是 Y"),但即使在这种不寻常的情况下,pi_approximation也是一个更好的标识符。
标签: c++