宫宸 发表于 2021-8-28 00:43:44

S1E5小问题求解,谢谢

将下边几种常见菜名的价格定义为符号常量
今天的平均菜价(单位是元/千克,1 斤等于 0.5 千克):番茄(3.7),芥蓝(7),西芹(1.3),空心菜(8),洋葱(2.4),油菜(9),黄瓜(6.3),白萝卜(0.5)
计算小明买 2 斤番茄、1 斤空心菜、1 斤油菜需要支付的价格,并打印出来
计算小红买 3 斤西芹,半斤洋葱,5 斤黄瓜需要支付的价格,并打印出来
计算小甲鱼买 10 斤黄瓜和 20 斤白萝卜需要支付的价格,并打印出
#include <stdio.h>

#define FANQIE3.7
#define JIELAN7
#define XIQIN   1.3
#define KONGXINCAI      8
#define YANGCONG      2.4
#define YOUCAI9
#define HUANGGUA      6.3
#define BAILUOBO      0.5

int main()
{
      float price;

      price = (2 * FANQIE + KONGXINCAI + YOUCAI) * 0.5; // 1斤 == 0.5公斤
      printf("小明需要支付%.2f元\n", price);

      price = (3 * XIQIN + 0.5 * YANGCONG + 5 * HUANGGUA) * 0.5;
      printf("小红需要支付%.2f元\n", price);

      price = (10 * HUANGGUA + 20 * BAILUOBO) * 0.5;
      printf("小甲鱼需要支付%.2f元\n", price);

      return 0;
}
有三个price,为什么在打印时电脑知道是哪个price?
是默认前一个price吗?

小伤口 发表于 2021-8-28 01:18:48

C语言是一条语句一条语句的运行,从上到下。当然,循环,条件,选择等语句时根据条件进行选择执行,
第一个 printf("小明需要支付%.2f元\n", price);
就执行上一个
price = (2 * FANQIE + KONGXINCAI + YOUCAI) * 0.5; // 1斤 == 0.5公斤
完成之后 price 又被赋值为
price = (3 * XIQIN + 0.5 * YANGCONG + 5 * HUANGGUA) * 0.5;
下一个printf 就又执行上一个price 以此类推
页: [1]
查看完整版本: S1E5小问题求解,谢谢