c语言问题 程序没错,但是运行结果不对,求大神解决

2025-05-01 08:59:25
推荐回答(2个)
回答1:

printf("v=%.3f",v); 三位有效数吧。不是占用三个宽带把


#include 
#define PI 3.1415926

float cylinder (float r, float h) //改为float 就行 
{
    float s;
    s=PI*r*r*h;
    return s;
}
int main()
{
float r=0, h=0,v=0;  //这里也是。因为double的输入应该是%lf
printf("输入半径 r : ");
    scanf("%f",&r);
    printf("输入高度 h : ");
    scanf("%f",&h);
    v=cylinder(r,h);
   printf("v=%.3f",v);
   return 0;   
}

回答2:

程序没错怎么会结果不对?把scanf("%f",&r);和scanf("%f",&h);改成scanf("%lf",&r);和scanf("%lf",&h);。把printf("v=%3.f",v);改成printf("v=%.3f",v);。