首先是define的使用
#include <stdio.h>
#define inches_per_feet = 12;
#define height_per_inches = 2.54;
int main()
{
float height;
float inches;
float i_inches;
int feets;
printf("Enter a height in centimeters: ");
scanf("%f", &height);
while (height > 0)
{
inches = height / 2.54;//英寸
feets = (int)(inches / 12);//英尺
i_inches = inches - feets * 12;//余数
printf("%0.1f cm = %d feets, %0.1f inches\n", height, feets, i_inches);
printf("Enter a height in centimeters(<=0 to quit): ");
scanf("%f", &height);
}
printf("bye");
return 0;
}
const的使用
#include <stdio.h>
int main()
{
float height;
float inches;
float i_inches;
int feets;
printf("Enter a height in centimeters: ");
scanf("%f", &height);
while (height > 0)
{
const inches_per_feet = 12;
const height_per_inches = 2.54;
inches = height / height_per_inches;//英寸
feets = (int)(inches / inches_per_feet);//英尺
i_inches = inches - feets * inches_per_feet;//余数
printf("%0.1f cm = %d feets, %0.1f inches\n", height, feets, i_inches);
printf("Enter a height in centimeters(<=0 to quit): ");
scanf("%f", &height);
}
printf("bye");
return 0;
}
为什么输入相同的数字,最终导致余数不一样呢?希望能解释的清晰一点
我不知道你的代码为什么不会有警告,const不加类型会默认为int类型,而#define是宏替换
所以
#define之后为 inches = height /2.54
const之后为inches = height / 2
define的使用,
#define inches_per_feet = 12;
#define height_per_inches = 2.54;
语法是错误的,正确的如下:
#define inches_per_feet 12
#define height_per_inches 2.54