C语言常量的代码问题

#include <stdio.h>
#define A 1
#define B A+4
#define C A*B/4

int main()
{
 printf("C=%d",C);    //求得C的结果为2  程序的执行过程是1*1+4/4
}

当我将输出的%d换成%f结果就变成了0.000000  不应该是2.000000的么,求告解

define定义的A  1    这个1只是  宏名A的一个字符串;在实际运用过程中不会进行隐式转换为浮点数;

如果把A 定义为1.0    结果就是你要的

整数与整数的运算结果也是整数,如果不进行转换就按浮点数格式输出,结果必然是这样

您好,我是问答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632