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);
}
展开
 我来答
snowya59
2019-11-23 · TA获得超过2507个赞
知道小有建树答主
回答量:1645
采纳率:72%
帮助的人:113万
展开全部
%c 单个字符
%d 十进制整数(int)
%ld 十进制整数(long)
%f 十进制浮点数(float)
%lf 十进制浮点数(double) %o
呃呃呃好的吧的
2019-11-23 · TA获得超过343个赞
知道答主
回答量:1867
采纳率:35%
帮助的人:109万
展开全部
你这个里面涉及到float转int,然后又转float,高精度转低精度,容易丢失精度。建议多看一下c语言的数据类型的相互转化。
追问
define  p 3.12
然后再运行前不是已经把所有的p转成3.12了。p就不存在了,为什么a=p的时候不报错?
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
shandian888999
2019-12-22 · TA获得超过289个赞
知道小有建树答主
回答量:392
采纳率:86%
帮助的人:63.9万
展开全部
浮点型赋值给整型会出错的。
第二个0我不清楚,我也觉得很奇怪。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2019-12-22
展开全部
运行输出后应该是0.000000,3啊,你是用什么编译器?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式