m0_59621316 2021-07-18 19: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 19:51
    关注

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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 已采纳回答 7月19日
  • 创建了问题 7月18日

悬赏问题

  • ¥15 用hfss做微带贴片阵列天线的时候分析设置有问题
  • ¥50 我撰写的python爬虫爬不了 要爬的网址有反爬机制
  • ¥15 Centos / PETSc / PETGEM
  • ¥15 centos7.9 IPv6端口telnet和端口监控问题
  • ¥120 计算机网络的新校区组网设计
  • ¥20 完全没有学习过GAN,看了CSDN的一篇文章,里面有代码但是完全不知道如何操作
  • ¥15 使用ue5插件narrative时如何切换关卡也保存叙事任务记录
  • ¥20 海浪数据 南海地区海况数据,波浪数据
  • ¥20 软件测试决策法疑问求解答
  • ¥15 win11 23H2删除推荐的项目,支持注册表等