c语言,为什么运行后输出是0.000000和0?
#include<stdio.h>#definep3.12intmain(){constinta=3;intc,d;c=p;d=a;printf("%f,%d",c,d)...
#include<stdio.h>
#define p 3.12
int main()
{
const int a=3;
int c,d;
c=p;
d=a;
printf("%f,%d",c,d);
} 展开
#define p 3.12
int main()
{
const int a=3;
int c,d;
c=p;
d=a;
printf("%f,%d",c,d);
} 展开
展开全部
你这个里面涉及到float转int,然后又转float,高精度转低精度,容易丢失精度。建议多看一下c语言的数据类型的相互转化。
追问
define p 3.12
然后再运行前不是已经把所有的p转成3.12了。p就不存在了,为什么a=p的时候不报错?
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
浮点型赋值给整型会出错的。
第二个0我不清楚,我也觉得很奇怪。
第二个0我不清楚,我也觉得很奇怪。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2019-12-22
展开全部
运行输出后应该是0.000000,3啊,你是用什么编译器?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询