C语言入门 Day_4 小数 字符和常量

news2024/10/5 13:56:44

目录

前言

 1.浮点型

 2.字符型

 3.易错点​​​​​​​

 4.思维导图


前言

我们学习了C语言中用来表示整数的数据类型:整型(int),今天我们会学习用来表示小数的数据类型:浮点型(float)

1.浮点型

1.1—下面一些小数,在C语言里,我们把它们叫做浮点数(float)

3.1415
0.00
-6.6

1.一个正小数3.1415

2.写成小数格式的0,0.0

3.一个负小数-6.66

1.2—为什么好好的小数不叫小数,要教浮点数呢,这是因为在C语言和计算机中存储小数的底层机制决定了的。为了方便记忆,可以简单粗糙的记忆为:因为小数有小数点,所以叫浮点数😄。

更详细一点解释的话。计算机对于小数的存储分为两部分,一部分是数字本身,一部分是小数点所在的位置

比如3.1415和314.15这两个数字,计算机C语言存储这两个数字的时候,都会存储31415这个数字,同时,对于第一个数,小数点会记录在3的后面;对于第二个数,小数点会记录在314的后面。

因此这个小数点是“浮动的”,所以就叫浮点数了。

1.3-同样的,我们可以使用printf()语句来打印一个小数

printf("一个小数%f",3.14);


1.printf()指令

2.printf()的语法格式,括号

3.要打印输出的字符串

4.%f,小数的”替代符号“

5.3.1415要输出的小数

6.两个语法的固定符号

1.4-同样的,我们还可以输出一个2.22;

printf("%f",2.22);



输出结果

2.220000



以及输出一个0.0:

printf("%f",0.0);



输出结果

0.000000


1.5—在格式化的输出里面,整型使用的是%d,浮点型使用的是%f,聪明的你可能猜到了,这是因为f是浮点英文float的首字母。

定义整型变量的时候我们使用int,定义浮点型变量的时候我们使用float

float xiaoshu_a;

非常值得注意的是,float型的小数只能提供7位有效数字。

所以当我使用%f输出数据时,最多只能显示6位小数位,不足6位的,会自动补0;而多于6位的,会四舍五入进位。

1.6—让我们运行下面的代码,来看看它的输出

float a=3.14;
printf("%f",a);
float b=3.1415926;
printf("%f",b);

输出结果

3.140000

3.141593

那如果我们只想输出一个两位数小数,而不想要编译器自动在它末尾补的0,该怎么办呢?

这个时候,我们就可以在float型小数的插入符%f中百分号%的后面加上一个“小数点 + 小数位数”

例如 :%.2f,这样我们就可以只输出两位小数,我们定义一个浮点数变量并给它赋值3.14,然后打印输出

float xiaoshua_a=3.14;
printf("%.2f",xiaoshu_a);

1.float,定义浮点数变量的关键字

2.xiaoshu_a,这个变量的变量名

3.=,赋值符号

4.3.14,一个小数

5.%.2f,格式化输出里面替代小数的符号,只输出两位小数

6.格式化输出里面要输出的变量

定义浮点型变量并赋值2.333,然后输出它

float b=2.333;
printf("%.3f\n",b);

输出结果

2.333


需要注意的是❗️,C语言是一门历史悠久的编程语言,那时候计算机的硬件资源(内存和CPU)都很宝贵,所以对数字的存储精度做了很多限制。

比如int整型变量的范围大约在-30000~30000,而float的范围在7位数字以内,也就是整数+小数部分的数字不要超过7位。

如果我们需要用到更大范围的数字的时候,我们后面会介绍到C语言中基于int和float的扩展数据类型。

为了简化记忆,我们只需要记住,int和float都有范围限制,超出了范围程序会报错,所以有时候程序出错了,我们可以看看是不是数字超出范围了。

我们知道了表示整型的int和表示浮点型的float,接下来我们学习C语言中代表字符的数据类型——字符型。

2.字符型

2.1-我们定义一个字符类型的变量letter_a,并赋值字符'm',并且打印它

char litter_a='m';
printf("%C",letter_a);

1.char,定义字符类型变量的关键

2.litter_a,一个变量的名字

3.=,赋值符号

4.'m',一个字符变量

5.%c,格式化输出里面的字符替代符

2.2-以这张图为例

 int是定义整形变量的关键字,float是定义浮点型变量的关键字,当然,char就是定义字符型变量的关键字,char是字符的英文character的缩写。

同样的,在格式化输出里面,%d用来表示整型,%f用来表示浮点型,用来表示字符的就是%c,c是英文字母character的首字母。

同样的,在格式化输出里面,%d用来表示整型,%f用来表示浮点型,用来表示字符的就是%c,c是英文字母character的首字母。

2.3—定义字符型变量letter_b,并赋值'N',然后打印它:

char letter_b='N';
printf("%c\n",letter_b);

输出结果

N


2.4-到目前为止,我们一共学习了三种数据类型,表示整数的整型,表示小数的浮点型,和表示字符的字符型

这三种数据类型在C语言中两种含义,第一种是应用于变量。用他们定义和声明某个变量的类型,具体含义是“这个变量的数据类型是定义好了的,不可改变的”。

int number_a=2023;
float number_b=3.1415;
char number_c='A';

第二种就是不应用变量的,用来单纯表示数据类型的,比如这三行代码都直接打印了数据本身。

printf("%d\n",2023);
printf("%f\n",3.1415);
printf("%C\n",'A');

3.常量

3.1-接下来我们就要学习一个和变量对应的概念常量

我们先来看三种不同类型的数据

A
2023
3.1415

1.字符型数据'A'

2.整型数据2023

3.浮点型数据3.1415

我们可以给一个变量进行赋值,比如下列代码,我们首先声明定义了一个变量this_year,并给他赋值了2023,然后第二行代码,我们修改了这个变量的值:

int this_year=2023;
this_yaer=2024;

而常量意思是,一个不可改变的量,比如我们不能写这样的代码,因为2023是一个常量,它不能再被赋值了。

2023=2024;


3.2以从盒子中拿球为例

就像我们可以给一个空盒子里面放入一个球。以及从盒子里拿出一个球,再放入另外一个球,这就是变量的赋值

但是我们无法把一个球放入另外一个球里面,这个球就像一个常量,它是实心的,不具备容纳其他东西的功能。

同样的,我们也不能写这样的代码:

'a'="B";


3.3-我们还可以给变量加个前缀const,让这个变量变成常量,这时候这个变量的值就不能再改变了。const的意思也是不可改变的。

cost int a=2023;


这种被const改变了属性的变量,依旧可以被访问,比如打印出来,这时候代码会正常运行

cost int a=2023;
printf("%d\n",a);

但它的值无法被改变,所以下面这个代码就会报错。

cots int a=2023;
a=2024;

4.易错点

eg: 

浮点型数据对应的插入符是 %f

整型数据对应的插入符是 %d

字符型数据对应的插入符是 %c

eg: 

字符型变量赋值时,记得要用英文的单引号''把字符括起来

5.思维导图

 在撰写这篇文章时,我参考了《白纸编程》这个app的观点和思想,我要感谢他们对我的启发和帮助。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/883176.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

tinymce动态生成

最近在做一个vue项目, 其中用到了富文本tinymce插件,界面上需要有多个编辑器, 界面如下: ![在这里插入图片描述](https://img-blog.csdnimg.cn/f029b487c799482d8d53c2c31e07ccad.png 这里点击添加按钮, 需要动态添加tinymce组件 页面的元素 // item是v-for循环中的对象 <…

【第三阶段】kotlin语言的split

const val INFO"kotlin,java,c,c#" fun main() {//list自动类型推断成listList<String>val listINFO.split(",")//直接输出list集合&#xff0c;不解构println("直接输出list的集合元素&#xff1a;$list")//类比c有解构&#xff0c;ktoli…

linux下的lld命令

Linux下的lld命令的主要作用&#xff1a;用来查看程式运行所需的共享库&#xff08;动态链接库&#xff09;,常用来解决程式因缺少某个库文件而不能运行的一些问题。 1、首先ldd不是一个可执行程序&#xff0c;而只是一个shell脚本 2、ldd 的使用 lld 可执行程序或者动态库…

一维离散动力系统计算的基本理论

离散动力系统计算的基本理论 离散动力系统的基本概念与基本定理 离散动力系统的定义 形如 的迭代系统称为一个一阶离散动力系统。其中一阶指显式的仅依赖前一项类似得&#xff0c;我们可以定义m-阶离散动力系统 和更高维度的动力系统 不动点 不动点 周期轨道 周期与不变集 …

Android 组件

TextView 文本框 用于显示文本的一个控件。文本的字体尺寸单位为 sp 。sp: scaled pixels(放大像素). 主要用于字体显示。 文本常用属性 属性名说明id为TextView设置一个组件id&#xff0c;根据id&#xff0c;我们可以在Java代码中通过 findViewById()的方法获取到该对象&…

2011-2021年数字普惠金融指数Bartik工具变量法(含原始数据和Bartik工具变量法代码)

2011-2021年数字普惠金融指数Bartik工具变量法&#xff08;含原始数据和Bartik工具变量法代码&#xff09; 1、时间&#xff1a;2011-2020&#xff08;省级、城市&#xff09;&#xff0c;2014-2020&#xff08;区县&#xff09; 2、原始数据来源&#xff1a;北大金融研究中心…

IDEA 中Tomcat源码环境搭建

一、从仓库中拉取源代码 配置仓库地址、项目目录&#xff1b;点击Clone按钮&#xff0c;从仓库中拉取代码 Tomcat源码对应的github地址&#xff1a; https://github.com/apache/tomcat.git 二、安装Ant插件 打开 File -> Setting -> Plugins 三、添加Build文件 &…

UI设计师个人工作总结范文

UI设计师个人工作总结范文篇一 感受到了领导们“海纳百川”的胸襟&#xff0c;感受到了作为广告人“不经历风雨&#xff0c;怎能见彩虹”的豪气&#xff0c;也体会到了重庆广告从业人员作为拓荒者的艰难和坚定(就目前国内广告业而言&#xff0c;我认为重庆广告业尚在发展阶段并…

云曦暑期学习第五周——2022美亚杯个人赛

I.案件详情 于2022年10月&#xff0c;有市民因接获伪冒快递公司的电邮&#xff0c;不慎地于匪徒架设的假网站提供了个人信用咭资料导致经济损失。警方追查下发现当中一名受骗市民男子李大輝 (TaiFai) 的信用卡曾经被匪徒在区内的商舖购物。 后来警方根据IP地址&#xff0c;锁定…

(二分查找) 剑指 Offer 53 - I. 在排序数组中查找数字 I ——【Leetcode每日一题】

❓剑指 Offer 53 - I. 在排序数组中查找数字 I 难度&#xff1a;简单 统计一个数字在排序数组中出现的次数。 示例 1: 输入: nums [5,7,7,8,8,10], target 8 输出: 2 示例 2: 输入: nums [5,7,7,8,8,10], target 6 输出: 0 提示&#xff1a; 0 < n u m s . l e n g …

【Go语言】go_session(超级详细)

目录 前言附件代码审计Index函数Admin函数Flask函数server.py问题 思路本地搭建环境admin绕过SaveUploadedFile方法payload 总结 前言 国赛初赛有一道题目go session&#xff0c;用go的Gin框架和pongo2模板引擎写的&#xff0c;是关于go的pongo2模板注入和flask的热加载&#…

ICLR2020 Query2Box:基于BOX嵌入的向量空间知识推理8.15

Query2Box&#xff1a;基于BOX嵌入的向量空间知识推理 摘要介绍 摘要 在大规模不完全知识图谱上回答复杂的逻辑查询是一项基础性但具有挑战性的任务。最近&#xff0c;一种解决这个问题的很有前途的方法是将KG实体和查询嵌入到向量空间中&#xff0c;这样回答查询的实体紧密嵌…

Azure创建可用性集

什么是可用性集 在Azure中&#xff0c;可用性集&#xff08;Availability Set&#xff09;是一种用于提高虚拟机&#xff08;VM&#xff09;可用性和可靠性的功能。它通过将虚拟机分布在不同的物理硬件和故障域中来提供高可用性。每个故障域都是一个独立的电力和网络故障区域&…

gitlab合并新项目和分支切换

一、新建项目 1、创建空白项目 2、先创建一个群组 3、编写群组信息 4、创建群组完成以后新建项目 ​​​​​​​ 二、将代码推送到gitlab 1、初始化 git init 2、关联gitlab地址 # 比如:http://192.168.139.128:7070/cloud/obwt_cloud.git git remote add origin <你…

完全备份、增量备份、差异备份、binlog日志

Top NSD DBA DAY06 案例1&#xff1a;完全备份与恢复案例2&#xff1a;增量备份与恢复案例3&#xff1a;差异备份与恢复案例4&#xff1a;binlog日志 1 案例1&#xff1a;完全备份与恢复 1.1 问题 练习物理备份与恢复练习mysqldump备份与恢复 1.2 方案 在数据库服务器192…

Android 面试笔记整理-Binder机制

作者&#xff1a;浪人笔记 面试可能会问到的问题 从IPC的方式问到Binder的优势为什么zygote跟其他服务进程的通讯不使用BinderBinder线程池和Binder机制 等等这些问题都是基于你对Binder的理解还有对其他IPC通讯的理解 IPC方式有多少种 传统的IPC方式有Socket、共享内存、管道…

HTML笔记(3)

表单标签 用于登录、注册界面&#xff0c;以采集用户输入的信息&#xff0c;把信息采集到之后&#xff0c;用户一点按钮&#xff0c;就会把这些信息发送到服务端&#xff0c;服务端就可以把这些数据存储到数据库&#xff0c;所以表单是一个非常重要的html标签&#xff0c;它主要…

机器学习之数据集

目录 1、简介 2、可用数据集 3、scikit-learn数据集API 3.1、小数据集 3.2、大数据集 4、数据集使用 ⭐所属专栏&#xff1a;人工智能 文中提到的代码如有需要可以私信我发给你&#x1f60a; 1、简介 当谈论数据集时&#xff0c;通常是指在机器学习和数据分析中使用的一组…