为什么总是输出0?解决办法
为什么总是输出0??
我输入的是:3.5 9
为什么这段代码,总是输出0.000000
计算一下可以发现,结果明显不会是0啊!
------解决方案--------------------
scanf("%1f,%1f",&r,&h);
==>
scanf("%1f%1f",&r,&h);
试试
------解决方案--------------------
scanf("%lf,%lf",&r,&h);中的%1f改成%lf
即1改成小写的L如下
scanf("%lf,%lf",&r,&h);
输入时输入3.5,9
------解决方案--------------------
1、你那个是%1f?应该用%lf(L的小写字母l)。
2、由于你scanf时使用了","分割,那么在输入也应该是3.5,9。否则scanf("%lf%lf",..),那么在输入时可以使用3.5空格9
------解决方案--------------------
因为你的数据类型是double,如果是%f,则数据类型改成float。
我输入的是:3.5 9
- C/C++ code
#include <stdio.h> int main() { double area,r,h; scanf("%1f,%1f",&r,&h); area = 2 * 3.14 * r * h + 2 * 3.14 * r * r; printf("%f",area); getch(); return 0; }
为什么这段代码,总是输出0.000000
计算一下可以发现,结果明显不会是0啊!
------解决方案--------------------
scanf("%1f,%1f",&r,&h);
==>
scanf("%1f%1f",&r,&h);
试试
------解决方案--------------------
scanf("%lf,%lf",&r,&h);中的%1f改成%lf
即1改成小写的L如下
scanf("%lf,%lf",&r,&h);
输入时输入3.5,9
------解决方案--------------------
1、你那个是%1f?应该用%lf(L的小写字母l)。
2、由于你scanf时使用了","分割,那么在输入也应该是3.5,9。否则scanf("%lf%lf",..),那么在输入时可以使用3.5空格9
------解决方案--------------------
因为你的数据类型是double,如果是%f,则数据类型改成float。