我的数据输出怎么是负数,c语言大神求指教 #include<stdio.h> #define PI 3.14 int 5

我的数据输出怎么是负数,c语言大神求指教#include<stdio.h>#definePI3.14intmain(){floats,v,r,h;scanf("r=%lf... 我的数据输出怎么是负数,c语言大神求指教
#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);
}
展开
 我来答
刀无极啊
2016-10-25 · TA获得超过3767个赞
知道大有可为答主
回答量:2960
采纳率:85%
帮助的人:933万
展开全部
由于你的输入输出格式控制是%lf,因此定义变量用double比较好,scanf对输入模式有严格的要求,如果输入的数据与参数不符合,那么就直接返回,后面的参数没有办法接收数据,你在scanf中r=%lf,h=%lf这样控制格式,那么在输入数据时,需要r=1.5,h=2.5这样的格式输入,才能让变量r和h接收到你输入的参数,如果你不按照这个格式输入参数,那么scanf函数就会返回错误,变量就有可能接收不到正确的数据,导致程序运行结果不正确
_277282419
2016-10-25 · TA获得超过631个赞
知道小有建树答主
回答量:227
采纳率:100%
帮助的人:126万
展开全部
#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);
}

首先你的r和h变量定义的是float类型的了。 你的scanf里面的输入格式符号应该写成%f才对啊

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

应该向上面一样

再看看你的输入格式列表写的是

"r=%f,h=%f"

这样子的话‘r=’‘,’‘h=’就要原样输入了比如你要想输入1.1 和1.3话

应该是r=1.1,h=1.3 然后回车 注意哦r=’‘,’‘h=’这三个要带上的

printf也是一样的

printf("s=%f,v=%f",s,v);把里面的'l'去掉了


当然你也可以把float s,v,r,h; 这里的float改为double 

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2016-10-25
展开全部
输入和输出截图看看
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式