当前位置: 首页 > news >正文

C++入门之认识整型

目录

一、变量

1.导入

2.变量

2.1 变量的作用

2.2 变量的定义方式

2.3 变量的“规矩”

二、数据类型

1.概念

2.int整型

三、C++的常见运算

四、输入操作

4.1 cin

4.2 try 1 try

4.2.1 cin>>

4.2.2 定义的整数类型,输入字母会怎么样?

4.2.3 cin同时输入多个值

五、顺序结构程序设计

六、例题讲解

问题:1311. 分跳绳

问题:1416. 求长方形的周长和面积

问题:1600. 请假时间计算

问题:1599. 米老鼠偷糖果

七、总结

八、感谢


一、变量

1.导入

在初等数学中,变量是用来表示数字的字母字符,具有任意性未知性

上图中,我们使用N表示了购买苹果的数量。当我们需要算总价的时候,直用N*2就能得到。

N可以表示任意数量的苹果, N就是变量

假如老鼠发现了一堆糖果,糖果有N颗。它一次可以背走a颗糖果。你能完成下方的表格吗?

运走糖果的次数1次2次8次X次
剩余的糖果数N-a???

如果你能完成上述问题,我们就可以学习C++中的变量了。

2.变量

2.1 变量的作用

C++ 中,变量是程序中用于存储数据值的一种占位符,可以理解为用来存储东西的箱子


我们在使用变量的时候,使用的不是这个箱子,而是箱子里面的东西。这就好像我们虽然买了一瓶汽水,但我们想要的是里面的饮料而不是瓶子。

当然有了变量以后,为了防止它丢,计算机还会记下它的地址,当我们想用它的时候能马上找到它。

2.2 变量的定义方式

那我们如何拥有一个属于我们自己的变量呢?其实这件事就和养宠物是一样的。

养宠物之前我们是不是得先想一下养个什么种类的宠物,是养猫呢?还是养小狗呢?

选好养什么宠物后,是不是还得给宠物取个名字,旺财、来福、咪咪等等。

好吧,我不擅长取名字QAQ。取好名字以后,就可以把宠物买回家了。

2.3 变量的“规矩”

在创建变量的时候有几个点需要注意:

1. 变量没有定义之前不能使用。

感觉说了一句废话,宠物都没有买回家怎么摸?但实际上是初学者容易出现的错误。比如没有区分大小写或者中途改了变量的名字又忘记改其他地方就有可能出现找不到变量的情况。

2. 变量名具有唯一性。

这个也很简单,一个宠物对应一个名字要区分开,总不能养了5只猫全叫“咪咪”吧。

3. 多个变量名之间用逗号“,”隔开,结尾用分号“;”结束。

你可以试试不隔开,然后你就会隔开了。

4. 变量名应该见名知意,不要随意乱取。

比如不要给你家咪咪,取个旺财或者来福这种一听就是小狗的名字。也不要jahsfadshsdajdsis 这样去叫你家的宠物,别人来你家做客想和你的宠物互动都跟唐僧过81难一样。

5. 变量名不要用数字开头,可以用数字结尾。

会报错,别试了。

6. 呃,先到这吧,多了你们也记不住。

在 C++中变量定义后如果不赋值,那么他的值是随机的,因此变量定义后,在使用之前一定要赋值(多定义几个变量,不赋值试试看)。

二、数据类型

1.概念

数据类型,简单来说,就像是给电脑里的信息贴上的不同标签,告诉电脑这些信息具体是什么样的东西,这样电脑就知道该怎么处理它们了。

想象一下,你在图书馆整理书籍,你会根据书的种类(比如小说、历史、科学等)把它们放在不同的书架上。这样,当你想找某一类书的时候,就可以直接去对应的书架找,非常方便。在计算机的世界里,数据类型就像是这些书架上的分类标签。

作用:限定变量的存储形式和数值范围。

数据类型确保了程序的正确性和效率,因为它限制了变量可以存储的数据类型,从而避免了类型错误和数据不一致的问题。‌

  • 整型(int):就像一堆数数的石子,用来数苹果、人数这样的整数。

  • 浮点型(float或double):这个就像是你的尺子,可以测量长度,但是能精确到小数点后几位。适合记录身高、体重这样可能有小数的数字。

  • 字符型(char):它就像你的名字中的一个字母,只能存储一个单一的字符,比如字母‘A’或者符号‘@’。

  • 布尔型(bool):就像开关,只有两种状态,开或关,对应于计算机中的真(true)或假(false)。

有了这些不同的数据类型,计算机就能明白你给它的是哪种类型的信息,从而正确地进行计算、比较或存储。就像你告诉朋友你要的是苹果而不是香蕉,朋友就不会拿错水果给你一样。

关于数据类型更多的知识,我们在后续慢慢讲,今天我们只关注整型。

2.int整型

在C++中,int(integer的缩写)是一种基本的数据类型,用于存储整数值。

它通常占用4个字节(32位),可以表示从-2147483648到2147483647之间的整数。

示例:

声明一个int类型的变量a,并将其初始化为123:

int a = 123;

    三、C++的常见运算

    C++中的算术运算符用于执行基本的数学运算。

    常见的算术运算符如下:

    注意 = 不是等于的意思,而是把右边的值赋给左边的变量;计算机中 == 用于比较是否相等。

    1. 加法运算符 (+): 用于将两个数值相加。
    int result = a + b; // 将a和b相加,结果存储在result中
    
      1. 减法运算符 (-): 用于从一个数值中减去另一个数值。
      int result = a - b; // 从a中减去b,结果存储在result 中
      
        1. 乘法运算符 (*): 用于将两个数值相乘。
        int result = a * b; // 将a和b相乘,结果存储在result 中
        
          1. 除法运算符 (/): 用于将一个数值除以另一个数值。如果两个操作数都是整数,结果也是整数(向下取整)。
          int result = a/b;// 将a除以b,结果存储在result中
          
            1. 取模运算符 (%): 用于获取两个整数相除后的余数。
            int result = a % b; // 获取a除以b的余数,存储在result 中
            

              四、输入操作

              4.1 cin

              cin 输入流对象

              作用:从标准输入(通常是键盘)读取数据。

              >> 提取运算符

              作用:从输入流中“提取”数据,即读取数据。

              4.2 try 1 try

              4.2.1 cin>>

              试着在固定代码中写几句话,输出到屏幕显示。

              int a;
              cin>>a;
              cout<<a;
              
                4.2.2 定义的整数类型,输入字母会怎么样?

                当你输入一个字母时,cin >> a 会失败,因为 a 是一个整数变量,而输入的是一个字母。此时,cin 会设置 failbit(错误标志),并且 a 的值保持未初始化的状态(通常是0,因为大多数编译器会默认初始化局部变量为0)。

                4.2.3 cin同时输入多个值

                方法和cout一致,多使用>>提取符号即可。当然你也可以多写几个cin,如果你不嫌很蠢的话。

                cin是怎么判断输入的数据有多个值的?比如上面的代码有三个变量,它是怎么把输入的值分给三个变量的?

                cin >>在读取输入时会默认在遇到空白字符(包括空格、制表符和换行符)时停止。因此在输入时,a,b,c之间应该用空格隔开。在oj中,测试数据如果有多个,那么也会有空格。

                五、顺序结构程序设计

                顺序结构的程序设计只要按照解决问题的顺序写出相应的语句即可,它的执行顺序是自上而下,依次执行。

                1. 第一步、阅读题目(问题描述、输入、输出)
                • 从题目中找出已知条件(可以看输入);
                • 确定题目要解决的问题,即未知结果(可以看输出);
                • 建立数学模型,如何从已知条件推导出未知结果。
                1. 第二步、定义变量
                • 根据已知、未知、关系定义出变量。
                1. 第三步、输入已知条件(cin>>)
                • 一定要看清楚题目的输入数据是几个!!!!!
                1. 第四步、计算
                • 根据推导出的数学关系来进行计算即可。
                1. 第五步、输出未知结果(cout<<)
                • 一定注意输出的格式,有的要求空格,有的要求换行。
                #include<bits/stdc++.h>
                using namespace std;
                int main(){//一、分析问题//已知://未知://关系(已知-推导-未知)://二、定义变量(根据已知、未知) //三、输入已知//四、计算(根据关系) //五、输出(未知) 输出空格<<" " 输出换行<<endl    return 0;	
                }
                

                六、例题讲解

                问题:1311. 分跳绳

                类型:基本运算、整数运算


                题目描述:
                学校新买来 m 根跳绳,每个班分 n 根,最多可以分给几个班的同学,还剩多少根?(m≥n)。

                输入:

                两个整数,用空格隔开,分别代表总共采购的跳绳数量以及每个班级分到的跳绳数量。

                输出:

                两个整数,用空格隔开,第一个整数代表可以分到的班级的数量,第二个整数代表剩余的跳绳数量。

                样例:

                输入:

                100 30
                

                  输出:

                  3 10
                  


                    1.分析问题

                    1. 已知:总共采购的跳绳数量m以及每个班级分到的跳绳数量n。
                    2. 未知:可以分到的班级的数量q、剩余的跳绳数量s。
                    3. 关系:q=m/n,s=m%n。

                    2.定义变量

                        // 二、数据定义 int m, n, q, s; // 定义变量m表示总跳绳数量,n表示每个班级分到的跳绳数量,q表示可以分配到的班级数量,s表示剩余跳绳数量
                    

                      3.输入数据

                          // 三、数据输入 cin>>m>>n; // 输入总共采购的跳绳数量m和每个班级分到的跳绳数量n
                      

                        4.数据计算

                            // 四、数据计算 q = m / n; // 计算可以分配到的班级数量s = m % n; // 计算剩余的跳绳数量
                        

                          5.输出结果

                              // 五、输出结果 cout<<q<<" "<<s; // 输出可以分配到的班级数量和剩余的跳绳数量return 0; // 程序正常结束,返回值为0
                          

                            完整代码如下:

                            #include<bits/stdc++.h> 
                            using namespace std;// 主函数入口
                            int main(){// 一、分析问题// 1. 已知条件:总共采购的跳绳数量(m),每个班级分到的跳绳数量(n)。// 2. 未知量:可以分配到的班级数量(q),剩余未分配的跳绳数量(s)。// 3. 关系式:可以分配到的班级数量 q = 总跳绳数量 m 除以 每个班级分到的跳绳数量 n 的商;//           剩余的跳绳数量 s = 总跳绳数量 m 除以 每个班级分到的跳绳数量 n 的余数。// 二、数据定义 int m, n, q, s; // 定义变量m表示总跳绳数量,n表示每个班级分到的跳绳数量,q表示可以分配到的班级数量,s表示剩余跳绳数量// 三、数据输入 cin>>m>>n; // 输入总共采购的跳绳数量m和每个班级分到的跳绳数量n// 四、数据计算 q = m / n; // 计算可以分配到的班级数量s = m % n; // 计算剩余的跳绳数量// 五、输出结果 cout<<q<<" "<<s; // 输出可以分配到的班级数量和剩余的跳绳数量return 0; // 程序正常结束,返回值为0
                            }
                            

                              问题:1416. 求长方形的周长和面积

                              类型: 基本运算、整数运算


                              题目描述:

                              从键盘读入2个整数,分别代表一个长方形的长和宽,请计算长方形的周长和面积;

                              输入:

                              从键盘读入2个整数,用空格隔开

                              输出:

                              输出有2行,第1行代表周长,第2行代表面积

                              样例:

                              输入:

                              2 3
                              

                                输出:

                                10
                                6
                                


                                  1.分析问题

                                  1. 已知:长方形的长l和宽w。
                                  2. 未知:长方形的周长p和面积a。
                                  3. 关系:p=2l+2w,a=l*w。

                                  2.定义变量

                                   // 二、数据定义 int l, w, p, a; // 定义变量l表示长方形的长,w表示宽,p表示周长,a表示面积
                                  

                                    3.输入数据

                                        // 三、数据输入 cin>>l>>w; // 输入长方形的长和宽
                                    

                                      4.数据计算

                                          // 四、数据计算 p = 2 * l + 2 * w; // 根据周长公式计算周长a = l * w; // 根据面积公式计算面积
                                      

                                      5.输出结果

                                          // 五、输出结果 cout<<p<<endl<<a; // 输出长方形的周长和面积return 0; // 程序正常结束,返回值为0
                                      

                                      完整代码如下:

                                      #include<bits/stdc++.h> 
                                      using namespace std;// 主函数入口
                                      int main(){// 一、分析问题// 已知:长方形的长(l)和宽(w)。// 未知:长方形的周长(p)和面积(a)。// 关系:周长公式 p = 2 * 长 + 2 * 宽;面积公式 a = 长 * 宽。// 二、数据定义 int l, w, p, a; // 定义变量l表示长方形的长,w表示宽,p表示周长,a表示面积// 三、数据输入 cin>>l>>w; // 输入长方形的长和宽// 四、数据计算 p = 2 * l + 2 * w; // 根据周长公式计算周长a = l * w; // 根据面积公式计算面积// 五、输出结果 cout<<p<<endl<<a; // 输出长方形的周长和面积return 0; // 程序正常结束,返回值为0
                                      }
                                      

                                      问题:1600. 请假时间计算

                                      类型:基本运算、整数运算


                                      题目描述:

                                      假设小明的妈妈向公司请了 n 天的假,那么请问小明的妈妈总共请了多少小时的假,多少分钟的假?(提示: 1 天有 24 小时,1 小时有 60 分钟)

                                      输入:

                                      一个整数 n,代表小明妈妈请假的天数。

                                      输出:

                                      两个整数,每行 1 个。
                                      第 1 行的整数代表小明妈妈请假的小时数。
                                      第 2 行的整数代表小明妈妈请假的分钟数。

                                      样例:

                                      输入:

                                      1
                                      

                                        输出:

                                        24
                                        1440
                                        


                                          1.分析问题

                                          1. 已知:小明妈妈请假的天数n。
                                          2. 未知:小明的妈妈总共请了多少小时h的假,多少分钟m的假?
                                          3. 关系:h=n * 24,m=h * 60。

                                          2.定义变量

                                           // 二、数据定义 int n, h, m; // 定义变量n存储请假天数,h存储请假小时数,m存储请假分钟数

                                          3.输入数据

                                          // 三、数据输入 cin>>n; // 输入小明妈妈请假的天数
                                          

                                          4.数据计算

                                              // 四、数据计算 h = n * 24; // 计算总共请假的小时数m = h * 60; // 根据总小时数计算总共请假的分钟数
                                          

                                          5.输出结果

                                              // 五、输出结果 cout<<h<<endl<<m; // 分别输出请假的小时数和分钟数return 0; // 程序正常结束,返回值为0
                                          

                                          完整代码如下:

                                          #include<bits/stdc++.h> 
                                          using namespace std;// 主函数入口
                                          int main(){// 一、分析问题// 已知:小明妈妈请假的天数(n)。// 未知:小明妈妈总共请了多少小时(h)的假,多少分钟(m)的假?// 关系:1天等于24小时,所以h = n * 24;1小时等于60分钟,所以m = h * 60。// 二、数据定义 int n, h, m; // 定义变量n存储请假天数,h存储请假小时数,m存储请假分钟数// 三、数据输入 cin>>n; // 输入小明妈妈请假的天数// 四、数据计算 h = n * 24; // 计算总共请假的小时数m = h * 60; // 根据总小时数计算总共请假的分钟数// 五、输出结果 cout<<h<<endl<<m; // 分别输出请假的小时数和分钟数return 0; // 程序正常结束,返回值为0
                                          }
                                          

                                          问题:1599. 米老鼠偷糖果

                                          类型:基本运算、整数运算


                                          题目描述:

                                          米老鼠发现了厨房放了 n 颗糖果,它一次可以背走 a 颗,请问米老鼠背了 x 次之后还剩多少颗?(假设 x 次之后一定有糖果剩下)。

                                          输入:

                                          三个整数n、a、x 分别代表总共有 n 颗糖果,米老鼠一次背走 a 颗糖果,总共背了 x 次。

                                          输出:

                                          一个整数,代表剩余的糖果数量。

                                          样例:

                                          输入:

                                          12 2 3
                                          

                                            输出:

                                            6
                                            


                                              1.分析问题

                                              1. 已知:共有 n 颗糖果,米老鼠一次背走 a 颗糖果,总共背了 x 次。
                                              2. 未知:米老鼠背了 x 次之后还剩多少颗s?
                                              3. 关系:s=n-a*x。

                                              2.定义变量

                                                  // 二、数据定义 int n, a, x, s; // 定义变量n表示糖果总数,a表示米老鼠每次背走的糖果数,x表示背走次数,s表示剩余糖果数
                                              

                                              3.输入数据

                                                  // 三、数据输入 cin>>n>>a>>x; // 输入糖果总数、每次背走糖果数和背走次数
                                              

                                              4.数据计算

                                                  // 四、数据计算 s = n - a * x; // 计算出米老鼠背走x次后剩余的糖果数量
                                              

                                              5.输出结果

                                                  // 五、输出结果 cout<<s; // 输出剩余糖果的数量return 0; // 程序正常结束,返回值为0
                                              

                                              完整代码如下:

                                              #include<bits/stdc++.h> 
                                              using namespace std;// 主函数入口
                                              int main(){// 一、分析问题// 已知:共有糖果总数为 n,米老鼠每次背走糖果数为 a,共背走了 x 次。// 未知:米老鼠背了 x 次之后还剩多少糖果(s)。// 关系:剩余糖果数 s = 初始糖果数 n - 每次背走糖果数 a 乘以 背走次数 x,即 s = n - a * x。// 二、数据定义 int n, a, x, s; // 定义变量n表示糖果总数,a表示米老鼠每次背走的糖果数,x表示背走次数,s表示剩余糖果数// 三、数据输入 cin>>n>>a>>x; // 输入糖果总数、每次背走糖果数和背走次数// 四、数据计算 s = n - a * x; // 计算出米老鼠背走x次后剩余的糖果数量// 五、输出结果 cout<<s; // 输出剩余糖果的数量return 0; // 程序正常结束,返回值为0
                                              }
                                              

                                              七、总结

                                              经过这一系列的学习,你现在应该已经掌握了C++程序设计的入门知识,包括变量的定义与使用、多种数据类型的识别与应用、以及如何进行基本的算术运算。通过解构实例问题,比如“分跳绳”、“求长方形周长和面积”、“火柴棒三角形”和“买文具”,你不仅熟悉了问题解决的逻辑步骤,还学会了如何将这些逻辑转化为C++代码。

                                              记住,编程不仅仅是技术的堆砌,更是思维的艺术。每一道练习题都是对逻辑思维的一次锻炼,每一个算法设计都是对问题本质的深刻理解。随着学习的深入,你将逐渐能够应对更复杂的问题。保持好奇心,勇于实践,不断探索,相信你能在编程的海洋中航行得更远。加油,未来的编程之星!

                                              八、感谢

                                              如若本文对您的学习或工作有所启发和帮助,恳请您给予宝贵的支持——轻轻一点,为文章点赞;若觉得内容值得分享给更多朋友,欢迎转发扩散;若认为此篇内容具有长期参考价值,敬请收藏以便随时查阅。

                                              每一次您的点赞、分享与收藏,都是对我持续创作和分享的热情鼓励,也是推动我不断提供更多高质量内容的动力源泉。期待我们在下一篇文章中再次相遇,共同攀登知识的高峰!

                                              http://www.xdnf.cn/news/324523.html

                                              相关文章:

                                            • 使用OpenCV 和 Dlib 实现人脸融合技术
                                            • shell(11)
                                            • 使用ffmpeg截取MP3等音频片段
                                            • MCP Client适配DeepSeek
                                            • SpringBoot 集成 Ehcache 实现本地缓存
                                            • Vue3 自定义指令的原理,以及应用
                                            • Ubuntu 单机多卡部署脚本: vLLM + DeepSeek 70B
                                            • ERP进销存系统源码,SaaS模式多租户ERP管理系统,SpringBoot、Vue、UniAPP技术框架
                                            • 基于nnom的多选择器
                                            • springboot国家化多语言实现
                                            • mybatis-plus分页查询count语句为什么没有left join
                                            • 正则表达式非捕获分组?:
                                            • CHAPTER 17 Iterators, Generators, and Classic Coroutines
                                            • 构建高质量数据湖:大数据治理在湖仓一体架构下的实践指南
                                            • mathtype转化
                                            • Vivo 手机官网交互效果实现解析
                                            • arXiv论文 MALOnt: An Ontology for Malware Threat Intelligence
                                            • ubuntu中解决matplotlib无法显示中文问题
                                            • 【MVCP】基于解纠缠表示学习和跨模态-上下文关联挖掘的多模态情感分析
                                            • 码蹄集——平方根X、整除幸运数
                                            • Rust 与 Golang 深度对决:从语法到应用场景的全方位解析
                                            • 平面坐标系中判断点P是否在线段上AB上的常用方法总结
                                            • 【渗透测试】命令执行漏洞的原理、利用方式、防范措施
                                            • 滚动条样式
                                            • 数据治理与数据资产管理研究方向展望
                                            • 【java】使用iText实现pdf文件增加水印功能
                                            • windows下docker的使用
                                            • Java从入门到精通 - 程序流程控制
                                            • 相似命令对比
                                            • 华为云API、SDK是什么意思?有什么区别和联系?