【发布时间】:2017-10-13 12:06:03
【问题描述】:
我正在尝试让这段代码运行,我尝试了这两种方法,但无济于事。目的是使用 scanf 接收输入并使用 printf 打印出语句。我得到的错误消息是编译器只是挂起。
另外,我不会使用任何数学函数,例如平方根或幂
测试用例和预期答案
输入1:1.41421356237
输出1:圆的面积是3.141590
输入2:5.65
输出2:圆的面积是50.143703
试用 1
#include <stdio.h>
double function(double a){
double area;
area = 3.14159*((a/2)*(a/2)*2);
return area;
}
int main(void){
double a;
scanf("%f",a);
double result = function(a);
printf("Area of the circle is %f\n",result);
return 0;
}
试用 2
#include <stdio.h>
int main(void){
scanf("%f",a);
area = 3.14159*((a/2)*(a/2)*2);
printf("Area of the circle is %f\n",area);
return 0;
}
不胜感激,不知道为什么该功能不起作用。感谢您的宝贵时间。
【问题讨论】:
-
看起来第二个缺少
double area;和double a; -
如果你的编译器挂在这个代码上,你可能应该得到一个不同的。任何工作的编译器都应该在此代码上产生一些错误消息。参见例如here
-
将
scanf("%f",a);更改为scanf("%f",&a);。这段代码与 c++ BTW 有什么关系?对我来说,它看起来像普通的 c 代码。 -
还可以考虑使用
std::cin和std::cout。他们会轻松完成您需要的 IO。 -
输入 1:1.41421356237 输出 1:圆的面积是 3.141590 写这篇文章的人对几何有着有趣的想法。