帮忙看一下这个算椭圆表面积,输出结果总是0

#include
#include
int main()
{
const double pi = acos(-1.0);
double r, h, s1, s2, s;
scanf("%1f%1f", &r, &h);
s1 = pi*r*r;
s2 = 2*pi*r*h;
s = s1*2.0 + s2;
printf("Area = %.3f\n", s);
return 0;
}

const double pi = acos(-1.0);

float r, h, s1, s2, s;
scanf("%f %f", &r, &h);
s1 = pi*r*r;
s2 = 2*pi*r*h;
s = s1*2.0 + s2;
printf("Area = %f\n", s);
return 0;

double acos(double x)

传入的参数 只需要一个-1即可,cos(pi)=-1;
第一行 改为 double pi=acos(-1);

 scanf("%1f%1f", &r, &h);

应修改为:

 scanf("%lf%lf", &r, &h);  //是字母l,不是数字1

另外请注意,因为r,h定义为double类型,所以格式字符串必须为%lf
格式字符串%f对应的是float类型。

如果对您有帮助,请采纳答案好吗,谢谢!

double类型要用%lf