#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