我正在尝试运行此代码,我尝试了这两种方法,但无济于事。目的是使用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;
}
会感激任何帮助,不知道为什么功能不起作用。谢谢你的时间。
答案 0 :(得分:2)
在第一次试用中,您需要将scanf("%f",a);
行更改为:
scanf("%lf",&a);
因为double的正确类型说明符是%lf
,它代表“long float”。您还需要发送&a
作为参数,因为scanf需要一个地址而不是一个值。第二次试验也是如此。