c语言的输入以及 为常量定义名字

📅 2026/7/7 12:08:34 👁️ 阅读次数 📝 编程学习
c语言的输入以及 为常量定义名字
define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#defineSCALE_FACTOR(5.0f/9.0f)#defineFREEZING_PT32intmain(void){floatfahrenheit;//代码即注释printf("Enter Fahreneit temparature:");scanf("%f",&fahrenheit);floatcelsius=SCALE_FACTOR*(fahrenheit-FREEZING_PT);//魔法数字printf("Celsius equivalent: %.1f\n",celsius);return0;}

这是一个华氏温度转摄氏温度的 C 语言入门程序,整体逻辑是:用户输入一个华氏度数值,程序自动计算并输出对应的摄氏度数值。
第 1 行

#define_CRT_SECURE_NO_WARNINGS这是 Visual Studio 编译器的专属配置。VS 默认认为scanf这类传统 C 函数 “不安全”,不加这行代码编译会直接报错。加上它之后,就能正常使用 C 语言标准的输入输出函数了。**2**```c#include<stdio.h>引入标准输入输出头文件。 stdio.h 里封装了printf(打印文字)、scanf(读取输入)这些基础功能。不写这一行,程序就不认识printf和scanf,无法运行**4~5**```c#defineSCALE_FACTOR(5.0f/9.0f)#defineFREEZING_PT32

宏定义,可以理解成 “给固定数值起个好记的名字”:
SCALE_FACTOR 对应换算系数 5÷9,是华氏转摄氏的核心比例
FREEZING_PT 对应 32,代表水的冰点(0 摄氏度 = 32 华氏度)
好处:
代码可读性更强,看到名字就知道数字的含义,避免 “裸数字”(也叫魔法数字)
后续要改数值,只改宏定义这一处就行
补充:5.0f 里的f表示这是单精度浮点数,保证除法是小数运算,不会出现整数除法的错误。

第 7 行

intmain(void){`` 定义变量。 声明了一个叫fahrenheit的float类型变量(浮点型,用来存带小数的数字),专门用来存放用户输入的华氏温度。// 后面是注释,写给人看的,编译器会直接忽略,不影响程序运行。**9**```cprintf("Enter Fahrenheit temparature:");

在控制台打印提示文字。
执行后屏幕上会显示双引号里的内容:Enter Fahrenheit temparature:,用来提示用户该输入数字了。

第 10 行

scanf("%f",&fahrenheit);

%f 是格式控制符,告诉程序 “我要读取一个浮点数(小数)”
&fahrenheit 里的&是取地址符,意思是把用户输入的数值,存到fahrenheit这个变量对应的内存里。scanf必须拿到地址才能把值存进去,这是入门很容易忘的点。

第 12 行`

floatcelsius=SCALE_FACTOR*(fahrenheit-FREEZING_PT);//魔法数字

核心计算逻辑,执行华氏度转摄氏度的公式。
数学公式:摄氏度 = (5/9) × (华氏度 - 32)
代码里用宏替换后,等价于:celsius = (5.0f/9.0f) * (fahrenheit - 32)
同时定义了变量celsius,把计算结果直接存进去。

第 14 行

printf("Celsius equivalent: %.1f\n",celsius);

输出计算结果。
%.1f 表示以浮点数格式输出,保留 1 位小数
\n 是换行符,输出完结果后光标自动换到下一行
最终效果类似:Celsius equivalent: 25.0

第 15 行

return0;

主函数返回值。
返回整数 0 给操作系统,表示程序正常执行、成功结束。如果返回非 0 数字,一般代表程序异常退出

程序完整执行流程
屏幕弹出提示文字,让用户输入华氏温度
等待用户输入数字,并存入变量
按照公式计算出摄氏温度
把结果打印到屏幕上
程序正常结束

`