我的c语言为什么总是输出0.00?
#include<stdio.h>intmain(){doubleh,m,T;scanf("%d%d",&h,&m);m=m/60;h=m+h;T=(4*h*h)/(h+...
#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;
} 展开
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("%d%d",&h,&m);
h和m两个参数是double类型的,读取的时候需要用%ld,
把上面那句话改成scanf("%lf %lf",&h,&m);
就可以了。
h和m两个参数是double类型的,读取的时候需要用%ld,
把上面那句话改成scanf("%lf %lf",&h,&m);
就可以了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你定义的是双精度变量,但scanf中的控制字符却是%d,这输入的是整型变量的值,那么输出的值当然会发生错误。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
double h,m,T;
scanf("%d %d",&h,&m);
你定义的是double
但是输入的确实%d也就是int型的数据,肯定会出错
改成
scanf("%lf%lf",&h,&m);
试试
scanf("%d %d",&h,&m);
你定义的是double
但是输入的确实%d也就是int型的数据,肯定会出错
改成
scanf("%lf%lf",&h,&m);
试试
追问
为什么lf的值与f的值输出的不同呢?
追答
f是float
lf是double
有的时候不通用,尽量区分开这两个定义
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
double型变量,输入用 %f,怎么用%d
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询