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

我的数据输出怎么是负数,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);
}

由于你的输入输出格式控制是%lf,因此定义变量用double比较好,scanf对输入模式有严格的要求,如果输入的数据与参数不符合,那么就直接返回,后面的参数没有办法接收数据,你在scanf中r=%lf,h=%lf这样控制格式,那么在输入数据时,需要r=1.5,h=2.5这样的格式输入,才能让变量r和h接收到你输入的参数,如果你不按照这个格式输入参数,那么scanf函数就会返回错误,变量就有可能接收不到正确的数据,导致程序运行结果不正确
温馨提示:内容为网友见解,仅供参考
第1个回答  2016-10-25
#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 

本回答被网友采纳
第2个回答  2016-10-25
输入和输出截图看看

我的数据输出怎么是负数,c语言大神求指教 #include<stdio.h> #...
由于你的输入输出格式控制是%lf,因此定义变量用double比较好,scanf对输入模式有严格的要求,如果输入的数据与参数不符合,那么就直接返回,后面的参数没有办法接收数据,你在scanf中r=%lf,h=%lf这样控制格式,那么在输入数据时,需要r=1.5,h=2.5这样的格式输入,才能让变量r和h接收到你输入的参数...

C语言下面的代码为什么我每次运行都会出现负数哪里出错了。
include<stdio.h>#define PI 3.14\/\/这里改了位置int main(){ double zhijing,zhouchang; printf("请输入直径:"); scanf("%lf",&zhijing);\/\/这里改了 zhouchang = zhijing * PI; printf("周长=%lf\\n",zhouchang);\/\/这里改了 return 0;}小错误 不过 格式 很重要 ...

#include<stdio.h> #define PI 3.14 int main() {float s,v,r,h...
3、球体积公式是 v=4\/3*PI*r*r*r,定义的变量 h 没有使用。4、类似3.14这样的浮点常量,默认类型是double。如果想统一类型为float,严格来讲应该写成3.14f,不过问题不大。整理后代码如下:include<stdio.h>#define PI 3.14int main(){ float s, v, r, h; scanf("%f%f", &r, &h...

c语言(输入r,h求球的体积,圆柱体积)为什么求出的是负数??
include <stdio.h> include <math.h> define pi 3.1415926 int main(){ double qv,zv;float r;float h;\/\/定义格式不对 printf("请输入半径r,高h:");scanf("%f%f",&r,&h);\/\/输入格式要用%f puts("dddfs");qv=pi*pow(r,3)*(4.0\/3);\/\/要用浮点数除法,不然的话除出来是个...

...<stdio.h>#include<stdio.h> #define pi 3.14 main() { float...
include<stdio.h> define pi 3.14 int main(){ float r,h,s,v;printf("请输入圆柱体的半径:");scanf("%f",&r);printf("请输入圆柱体的高:");scanf("%f",&h);s=pi*r*r*2+2*pi*r*h;v=pi*r*r*h;printf("圆柱表面积为:%f\\n",s);printf("圆柱体积为:%f\\n",v);return...

c语言设置一个固定值 比如说我要设置一个值pi pi=3.14 怎么设置
在C语言 #define 标识符 常量 其中#define 也是一条预处理命令(预处理命令都以"#"开头),称为宏定义命令(在后面预处理程序中将进一步介绍),其功能是把该标识符定义为其后的常量值。一经定义,以后在程序中所有出现该标识符的地方均代之以该常量值。所有程序如下:include<stdio.h> define pi ...

#include <stdio.h> #define PI 3.1415926 int main() { double r,h...
include <stdio.h> define PI 3.1415926 int main(){ double r,h,c,s,p,q;scanf("%f%f",r,h);} r和h是double型的,应该是scanf("%f%f",r,h);

如何用c语言输入3.14的圆柱的高和半径?
include<stdio.h> define PI 3.14 int main(){ float R,V,H;printf("请输入半径和高:");scanf("%f%f",&R,&H);V=PI*R*R*H;printf("圆柱的体积为%.2lf",V);return 0;}

#define PI 3.14 定义小数时,我直接输出PI时,并不是输出3.14 而是很奇 ...
因为你输出用的是%d,3.14是个浮点数,要用%f实现,比如,如下:include <stdio.h> define PI 3.14 int main(int argc, char *argv[]){ printf("PI=%.2f\\n",PI);return 0;}

C语言问题看一下哪里错了
先输入后计算最后输出,正确C代码:include <stdio.h>#define PI 3.14int main(){double s,r;scanf("%lf",&r);s=PI*r*r;printf("%lf",s);return 0;}正确VC代码:include <stdio.h>#define PI 3.14void main(){double s,r;scanf("%lf",&r);s=PI*r*r;printf("%lf",s);...

相似回答