常量宏定义 课后作业最后一题 求大神解惑
#define是宏定义,在编译器编译阶段会将标号处替换为宏定义的值,比如拿printf("%s", XM);来说,XM被替换为一个表达式,这个表达式计算后在这里并不是一个字符串,故会报错 newu 发表于 2019-6-20 17:31
#define是宏定义,在编译器编译阶段会将标号处替换为宏定义的值,
比如拿printf("%s", XM);来说,XM被替 ...
那可以怎么改呢?
{:10_282:} 把%s换成%f试一下
#include <stdio.h>
#define FANQIE 3.7
#define JINLAN 7
#define XIQIN 1.3
#define KONGXINCHA 8
#define YANGCONG 2.4
#define YOUCAI 9
#define HUANGGUA 6.3
#define BAILUOBO 0.5
int main()
{
double price ;// float 和double 都行,一般用double ,如果声明float ,系统会自动变为double
price=(2*FANQIE+1*KONGXINCHA+1*YOUCAI)*0.5;
printf("小明需要支付%.2f元\n",price ); //这里计算支付的价格,保留2位小数,所以用浮点型
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;
}
#include <stdio.h>
#define F 3.7
#define J 7
#define X 1.3
#define K 8
#define YCONG 2.4
#define YCAI 9
#define H 6.3
#define B 0.5
#define XM (2*F+K+YCAI)*0.5
#define XH (3*X+0.5*YCONG+5*H)*0.5
#define XJY (10*H+20*B)*0.5
int main()
{
printf("小明需要支付%.2f元\n",XM );
printf("小红需要支付%.2f元\n",XH );
printf("小甲鱼需要支付%.2f元\n",XJY);
} #include <stdio.h>
#define F 3.7
#define J 7
#define X 1.3
#define K 8
#define YC 2.4
#define Y 9
#define H 6.3
#define B 0.5
#define XM 2*F+K+Y
#define XH 3*X+0.5*YC+5*H
#define XJY 10*H+20*B
int main()
{
printf("小明需要支付%.2f元\n",XM );
printf("小红需要支付%.2f元\n",XH );
printf("小甲鱼需要支付%.2f元\n",XJY);
}
把全部printf里的%s换成%f就行
页:
[1]