我的c语言为什么总是输出0.00?

#include<stdio.h>
int main()
{
double h,m,T;
scanf("%d%d",&h,&m);
m=m/60;
h=m+h;
T=(4*h*h)/(h+2);
printf("%.2f\n",T);
return 0;
}

scanf("%lf,%d,%lf", &rate, &year, &capital);

你的代码里输入格式是%lf,%d,%lf,中间有逗号,所以输入的时候也要有逗号

估计你输入的时候没加逗号(注意是西文逗号),而是用空格分隔的,要不加逗号用空格分隔的话,就把%lf,%d,%lf中间的逗号去掉,这样就可以用空格分隔输入了

我试着运行了下:

年化15%,5年翻倍,没错

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-11-11
scanf("%d%d",&h,&m);
h和m两个参数是double类型的,读取的时候需要用%ld,
把上面那句话改成scanf("%lf %lf",&h,&m);
就可以了。
第2个回答  2019-12-23
你定义的是双精度变量,但scanf中的控制字符却是%d,这输入的是整型变量的值,那么输出的值当然会发生错误。
第3个回答  2019-11-11
double h,m,T;
scanf("%d %d",&h,&m);
你定义的是double
但是输入的确实%d也就是int型的数据,肯定会出错
改成

scanf("%lf%lf",&h,&m);
试试追问

为什么lf的值与f的值输出的不同呢?

追答

f是float
lf是double
有的时候不通用,尽量区分开这两个定义

本回答被提问者采纳
第4个回答  2019-11-11
double型变量,输入用 %f,怎么用%d

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网