为什么圆柱的体积总显示0.00呀

img

img

输入的时候,4和8之间的逗号改成空格
因为你的scanf中%lf和%lf之间没有逗号,所以输入的时候,也不能输入逗号,把逗号改成空格即可。
另外,float类型用%f,%lf是double类型,把第5行声明变量的 float 改成double类型。
注意看下面图片中的输入样例:

img

修改后的代码

#include <stdio.h>
#include <math.h>
int main()
{
    double r,h,c,s,v; //这里用double类型
    scanf("%lf%lf",&r,&h);
    c = 2*3.14*r;
    s=3.14*r*r;
    v=3.14*r*r*h;
    printf("c=%.2lf\ns=%.2lf\nv=%.2lf\n",c,s,v);
    return 0;
}

float 类型要用 %f
double 类型才用 %lf
你要么把变量类型改成 double
你要么把%lf改成%f

scanf();在输入数值时要用空格或换行分隔,如 8 6
如果希望输入数值时用逗号分隔,scanf中就要写成"%lf,%lf"

如果要变量类型改成 double
你scanf中"%1f,%1f" 中%之后写的是数字1,应该是小写L

img

如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!

img

关键问题可能在输入的scanf中,同时建议掌握调试的基本方法,可以用断点调试,也可以每步打印处理观察。

#include <stdio.h>

#define PI 3.14

int main()
{
    double r, h, c, s, v;
    scanf("%lf,%lf", &r, &h);
    c = 2.0 * PI * r;
    s = PI * r * r;
    v = s * h;
    printf("c=%.2lf\ns=%.2lf\nv=%.2lf\n", c, s, v);
    return 0;
}
$ gcc -Wall main.c
$ ./a.out
4,8
c=25.12
s=50.24
v=401.92