C语言——HelloWorldN0.1

该博客主要介绍C语言入门知识。首先讲解了使用Visual C++ 6.0编辑器创建工程和文件,接着给出程序员第一个代码HelloWorld。重点解析特定字符,如#include <stdio.h>,阐述了预处理指令、头文件概念及作用,还举例说明不同头文件的使用规则。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、编辑器Visual C++ 6.0

1、创建工程

在这里插入图片描述2、创建文件
在这里插入图片描述
.c —源文件

二、程序员的第一个代码:HelloWorld
 代码:

#include<stdio.h>

void main()
{
  printf("世界,你好! \n");
}

 输出:
在这里插入图片描述

二、特定字符的简单解析:

#include < stdio.h >

# 是预处理指令
include 是“包含”的意思
#include " XX" 或者 #include ,意思是将"XX"或者中的文件引用到本程式中来,"XX"或者中的文件通常是由系统提供的,其扩展名为 .h。
因此也称为头文件或首部文件。

C语言的头文件中包括了各种标准库函数的函数原型。
#include < stdio.h >是包含 stdio.h 头文件的意思, .h头文件的扩展名(header file),stdio.h就是standard input output.header,也就是 “标准输入、输出"头文件,
这个文件的内容就是基本输入输出函数的声明,比如scanf()printf(),
你的程序包含了stdio.h,就相当于声明了这些函数,这样你才能够在自己的程序中使用它们【 scanf() 或 print() 】。

所以,若要在程序中调用一个库函数,包含该函数原型的头文件就必须要有,一般是写在程序开头。

例如: #include <math.h>是包含math头文件的意思, .h是头文件的扩展名(header file),这一句声明了本程序要用到标准库中的 math.h文件。math.h头文件中声明了常用的一些数学运算,比如乘方,开方运算等等。

每条#include语句只能包含一个头文件。如果有多个头文件,就得分别写多个#include语句,每行一条#include只语句,每条#include语句也只包含一个头文件。

下课!

恭喜你已经入门!!!

### C语言0.1 浮点数表示与精度问题 在C语言中,浮点数的存储和计算基于二进制表示法。然而,十进制小数(如0.1)无法精确地用二进制表示[^2]。具体来说,0.1在二进制中是一个无限循环小数,因此计算机只能用有限位数的近似值来表示它。这种近似表示会导致精度丢失。 #### 0.1 的二进制表示 十进制中的0.1转换为二进制时,会生成一个无限循环的小数序列。例如: ```plaintext 0.1 (十进制) ≈ 0.00011001100110011... (二进制) ``` 由于浮点数的存储空间有限(如 `float` 类型为32位,`double` 类型为64位),计算机只能截取其中的一部分作为近似值[^2]。这种截断会导致数值上的微小误差。 #### 精度问题的影响 在C语言中,浮点数的精度由其类型决定。对于 `float` 类型,有效数字通常为6~7位;而对于 `double` 类型,有效数字则为15~16位[^1]。如果需要更高的精度,则可以使用 `long double` 类型,但其精度仍然有限。 以下是一个简单的代码示例,展示0.1在浮点数运算中的精度问题: ```c #include <stdio.h> int main() { float a = 0.1f; double b = 0.1; printf("Float: %.10f\n", a); // 输出浮点数a的10位小数 printf("Double: %.17f\n", b); // 输出双精度b的17位小数 return 0; } ``` 运行结果可能类似于: ```plaintext Float: 0.1000000015 Double: 0.10000000000000001 ``` 这表明即使我们输入了0.1,但由于二进制表示的限制,实际存储的值与预期值存在细微差异。 #### 浮点数比较 由于浮点数的精度问题,在C语言中直接比较两个浮点数是否相等通常是不可靠的。例如: ```c #include <stdio.h> int main() { float f = 0.1f; if (f == 0.1f) { printf("Equal\n"); } else { printf("Not Equal\n"); } return 0; } ``` 上述代码可能会输出 `Not Equal`,因为浮点数的实际值可能并不完全等于预期值[^1]。 为了避免这种问题,可以通过判断两个浮点数之间的差值是否小于某个很小的阈值来实现近似比较: ```c #include <stdio.h> #include <math.h> int main() { float f = 0.1f; float threshold = 1e-6; // 定义误差范围 if (fabs(f - 0.1f) < threshold) { printf("Approximately Equal\n"); } else { printf("Not Approximately Equal\n"); } return 0; } ``` #### 总结 在C语言中,0.1这样的浮点数无法被精确表示,这是由于二进制表示法的限制所导致的。当进行浮点数运算或比较时,需要特别注意精度问题,并采取适当的措施(如使用误差范围)来避免因精度丢失而引发的问题。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值