m0_59621316 2021-07-18 11:16 采纳率: 80%
浏览 27
已采纳

C中关于define和const的使用

首先是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;
}
为什么输入相同的数字,最终导致余数不一样呢?希望能解释的清晰一点

展开全部

  • 写回答

2条回答 默认 最新

  • 砻谷踏碓 2021-07-18 11:51
    关注

    我不知道你的代码为什么不会有警告,const不加类型会默认为int类型,而#define是宏替换
    所以
    #define之后为 inches = height /2.54
    const之后为inches = height / 2

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
    m0_59621316 2021-07-19 11:02

    受教了!我把您说的值代入了,跟系统给的结果是一样

    回复
    砻谷踏碓 回复 m0_59621316 2021-07-19 11:06

    恭喜

    回复
查看更多回答(1条)
编辑
预览

报告相同问题?

问题事件

  • 已采纳回答 7月19日
  • 创建了问题 7月18日
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部