
#include<stdio.h> #define PI 3.14 int main() {float s,v,r,h; scanf("r=%lf,h=%lf",&r,&h); s=PI*r*
#include<stdio.h>#definePI3.14intmain(){floats,v,r,h;scanf("r=%lf,h=%lf",&r,&h);s=PI*...
#include<stdio.h>
#define PI 3.14
int main()
{float s,v,r,h;
scanf("r=%lf,h=%lf",&r,&h);
s=PI*r*r;
v=PI*r*r/3;
printf("s=%lf,v=%lf",s,v);
}
大神,我求面积和体积,哪里有问题,怎么出了负数? 展开
#define PI 3.14
int main()
{float s,v,r,h;
scanf("r=%lf,h=%lf",&r,&h);
s=PI*r*r;
v=PI*r*r/3;
printf("s=%lf,v=%lf",s,v);
}
大神,我求面积和体积,哪里有问题,怎么出了负数? 展开
2个回答
展开全部
1、scanf函数不能像printf函数那样写,这样写是有问题的:scanf("r=%lf,h=%lf",&r,&h);
这种情况下,假设r=1和h=1,如果你输入的时候不完整输入r=1,h=1然后回车,那么r和h都不能获得正确的输入值。所以按最简单的写法就好了:scanf("%f%f",&r,&h); 输入时用空格分隔两个数。
2、scanf 和 printf 格式串中的修饰符,如果和变量定义的类型不一致,会因为类型转换导致读取或输出的值不正确,所以既然定义为 float,就应该只用 %f 而不要用 %lf
3、球体积公式是 v=4/3*PI*r*r*r,定义的变量 h 没有使用。
4、类似3.14这样的浮点常量,默认类型是double。如果想统一类型为float,严格来讲应该写成3.14f,不过问题不大。
整理后代码如下:
#include<stdio.h>
#define PI 3.14
int main()
{
float s, v, r, h;
scanf("%f%f", &r, &h);
s = PI*r*r;
v = 4.0 * PI*r*r*r / 3;
printf("s=%f,v=%f\n", s, v);
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询