二刀流忍者 发表于 2020-10-20 18:32:44

代码运行结果与想象的不一样,求大神帮助

float a的值本来应该是12.2,但是计算机运行之后a = 11.7,不知道是哪里出错了诶,b和c的值都是正常运行正确的......


代码如下:




#include<stdio.h>
#define tomato 3.7
#define cabbage 7
#define celery 1.3
#define swamp 8
#define onion 2.4
#define oilseedrape 9
#define cucumber 6.3
#define whiteradish 0.5

int main()
{
      float a = tomato + (oilseedrape / 2) + (swamp / 2);
      float b = (celery / 2 ) * 3 + (onion / 2 )/ 2 + (cucumber / 2 ) * 5;
      float c = (cucumber / 2) * 10 + (whiteradish / 2)* 20;
      
      printf("小红需要支付%.2f元\n",a);
      printf("小明需要支付%.2f元\n",b);
      printf("小甲鱼需要支付%.2f元\n",c);
      
      return 0;
}


昨非 发表于 2020-10-20 18:56:16

#define tomato 3.7
#define cabbage 7.0
#define celery 1.3
#define swamp 8.0
#define onion 2.4
#define oilseedrape 9.0
#define cucumber 6.3
#define whiteradish 0.5

宏定义的时候定义成float型就不会出错了

二刀流忍者 发表于 2020-10-20 18:57:54

昨非 发表于 2020-10-20 18:56
宏定义的时候定义成float型就不会出错了

好的!明白了!谢谢呀!
页: [1]
查看完整版本: 代码运行结果与想象的不一样,求大神帮助