1、C++编程中的基本运算 - 课件

一、基础知识

1、C++程序的基本框架

// 预处理器指令,引入需要的头文件
#include <iostream>
// 使用标准命名空间
using namespace std;
// 主函数,程序的入口
int main() {// 局部变量声明// 程序逻辑代码// 返回值,表示程序正常结束return 0;
}

2、int 和 double

  1. C++中,我们使用不同的类型来存储整数和小数。

  2. int类型用于存储整数,例如:

    int age = 10;
    int score = 98;
    
  3. double类型用于存储小数,例如:

    double price = 9.99;
    double height = 1.75;
    
  4. 我们可以对int和double类型的变量进行各种算术运算,如加法、减法、乘法和除法。

  5. 当用int类型进行除法运算时,结果也是整数,小数部分会被去掉。(如:int a = 10 / 3,这里 a = 3,小数点会被去掉)。

  6. 如果想要得到小数结果,需要使用double类型(如:double a = 10 / 3,a = 3.3333……)。

  7. 在编程时,我们应该根据要存储的数字类型选择相应的变量类型,以确保正确地进行各种计算。

3、输入、输出和换行

输入: cin

  1. cin是C++中的一个标准输入流对象,用于从标准输入设备(通常是键盘)读取数据。

  2. 要使用cin,需要在程序开头包含iostream头文件:

    #include <iostream>
    
  3. 使用cin进行输入时,数据会从标准输入设备(通常是键盘)读取,直到遇到空格、制表符或换行符。

  4. cin使用>>运算符来读取数据。例如:

    using namespace std;
    int age;
    cout << "请输入你的年龄: ";
    cin >> age;
    
  5. 可以连续使用多个>>运算符来读取多个数据:

    using namespace std;
    int a, b;
    cin >> a >> b;
    
  6. cin会自动根据变量的类型来解析输入的数据。例如,如果变量是int类型,cin会将输入解析为整数;如果变量是double类型,cin会将输入解析为浮点数。

输出:cout 换行:endl

  1. cout:

    • cout是C++中的标准输出流对象,用于将数据输出到标准输出设备(通常是屏幕)。
    • cout位于<iostream>头文件中,需要在程序开头使用#include <iostream>引入该头文件。
    • cout使用<<运算符(插入运算符)来输出数据。可以连续使用多个<<运算符来输出多个数据。
    • cout可以输出各种类型的数据,如整数、浮点数、字符、字符串、布尔值等。
    • 示例:
      cout << "Hello, world!" << endl;
      cout << "The sum is: " << sum << endl;
      
  2. endl:

    • endl是C++中的一个操纵符(manipulator),用于插入一个换行符并刷新缓冲区。
    • endl也位于<iostream>头文件中。
    • 当使用cout输出数据时,可以使用endl来换行并确保数据立即输出到屏幕上。
    • 示例:
      cout << "First line" << endl;
      cout << "Second line" << endl;
      
  3. cout和endl的组合使用:

    • 在使用cout输出数据时,通常会与endl一起使用,以实现换行和刷新缓冲区的效果。
    • 可以在一条cout语句中使用多个<<运算符和endl操纵符,以输出多个数据并换行。
    • 示例:
      cout << "Name: " << name << endl;
      cout << "Age: " << age << endl;
      cout << "Score: " << score << endl;
      
  4. 注意事项:

    • 在使用cout和endl之前,需要确保已经包含了<iostream>头文件。

4、C++中的算术运算

运算符名称描述示例
+将两个操作数相加int a = 5 + 3;
-将第一个操作数减去第二个操作数int b = 7 - 2;
*将两个操作数相乘int c = 4 * 6;
/将第一个操作数除以第二个操作数int d = 10 / 3;
%取模返回第一个操作数除以第二个操作数的余数int e = 11 % 3;
  1. +:将两个操作数相加。可以用于数字相加,也可以用于字符串拼接。
  2. -:将第一个操作数减去第二个操作数。
  3. *:将两个操作数相乘。
  4. /:将第一个操作数除以第二个操作数。
    注意
    如果两个操作数都是整数,则结果也是整数,而不是浮点数。
    (例如 : 4 / 2 = 2)

    如果想要得到浮点数结果,至少有一个操作数需要是浮点数。
    (例如:4.0 / 2 = 2.0 或者4 / 2.0 = 2.0 或者 4.0 / 2.0 = 2.0)
  • 除数不能为0,否则会导致程序错误。编译器可能会给出警告或错误信息。
    例如:int a = 10 / 0;这是非法的,会导致编译错误或运行时错误。
  1. 取模 %:返回第一个操作数除以第二个操作数的余数。这个运算符只适用于整数操作数。
  • 取模运算的结果的符号与第一个操作数的符号相同。
    例如:-11 % 3的结果是-2,而不是2
  • 与除法运算类似,取模运算的第二个操作数也不能为0,否则会导致程序错误。
    例如:int b = 10 % 0;这是非法的,会导致编译错误或运行时错误。

5、案例实操

题目:
编写一个C++程序,从用户那里读取两个整数,然后使用cout语句输出以下算术运算的结果:

  1. 第一个数加第二个数的结果
  2. 第一个数减第二个数的结果
  3. 第一个数乘以第二个数的结果
  4. 第一个数除以第二个数的结果(整数除法)
  5. 第一个数除以第二个数的结果(浮点数除法)
  6. 第一个数除以第二个数的余数(取模运算)

要求:

  • 使用cin读取用户输入的两个整数,并用空格分隔。
  • 每个运算结果输出在单独的一行,并在输出前显示相应的算术表达式。
  • 在输出整数除法结果时,添加注释说明整数和整数运算的结果是整数。
  • 为了获得浮点数除法结果,将其中一个数声明为double类型的变量,然后进行除法运算。
  • 使用endl操作符来换行,而不是\n

注意事项:

  • 请注意处理除数为零的情况,以避免运行时错误。
  • 确保用户输入的是整数,否则可能会导致输入错误和意外结果。
  • 取模运算符%只能用于整数类型,不能用于浮点数。

6、代码解析

#include <iostream>
using namespace std;int main() {int num1, num2;cout << "请输入两个整数,用空格分隔: ";cin >> num1 >> num2;cout << num1 << " + " << num2 << " = " << num1 + num2 << endl;cout << num1 << " - " << num2 << " = " << num1 - num2 << endl;cout << num1 << " * " << num2 << " = " << num1 * num2 << endl;// 整数和整数运算结果是整数cout << num1 << " / " << num2 << " = " << num1 / num2 << endl;// 将其中一个数声明为浮点数,以获得浮点数除法结果double num1_double = num1;cout << num1_double << " / " << num2 << " = " << num1_double / num2 << endl;cout << num1 << " % " << num2 << " = " << num1 % num2 << endl;return 0;
}

代码解析:

  1. 使用cin从标准输入读取两个整数num1num2,并使用空格分隔。

  2. 使用cout输出加法、减法和乘法运算的结果,每个结果占一行。

  3. 对于整数除法,添加注释说明整数和整数运算的结果是整数。

  4. 为了获得浮点数除法结果,将其中一个数(num1)声明为double类型的变量num1_double,然后进行除法运算。

  5. 输出取模运算的结果。

  6. 使用endl操作符来换行,而不是\n

易错点模拟:

  1. 如果输入的num2为0,在进行除法或取模运算时会导致运行时错误(除以零)。

  2. 如果输入的数字不是整数(例如包含小数点),使用cin读取时会导致输入错误,后续的计算可能会产生意外结果。

  3. 如果在取模运算中使用浮点数,编译器会报错,因为取模运算符%只能用于整数类型。

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

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

相关文章

C 语言连接MySQL 数据库

前提条件 本机安装MySQL 8 数据库 整体步骤 第一步&#xff1a;开启Windows 子系统安装Ubuntu 22.04.4&#xff0c;安装MySQL 数据库第三方库执行 如下命令&#xff1a; sudo aptitude install libmysqlclient-dev wz2012LAPTOP-8R0KHL88:/mnt/e/vsCode/cpro$ sudo aptit…

鸿蒙求职面试内容总结——6月3日ZR的FS项目

最近接到了一些公司的入职面试邀约&#xff0c;这里略去公司的和项目的名字&#xff0c;做一些整理分享。 一、长列表如何实现部分渲染&#xff0c;使用的是哪一个API 在鸿蒙系统中&#xff0c;可以使用List组件来实现长列表的部分渲染。List组件支持使用条件渲染、循环渲染、…

docker一些常用命令以及镜像构建完后部署到K8s上

docker一些常用命令以及镜像构建完后部署到K8s上 1.创建文件夹2.删除文件3.复制现有文件内容到新建文件4.打开某个文件5.查看文件列表6.解压文件&#xff08;tar格式&#xff09;7.解压镜像8.查看镜像9.删除镜像10.查看容器11.删除容器12.停止运行容器13.构建镜像14.启动容器15…

英伟达开源最强通用模型Nemotron-4 340B

英伟达的通用大模型 Nemotron&#xff0c;开源了最新的 3400 亿参数版本。 本周五&#xff0c;英伟达宣布推出 Nemotron-4 340B。它包含一系列开放模型&#xff0c;开发人员可以使用这些模型生成合成数据&#xff0c;用于训练大语言模型&#xff08;LLM&#xff09;&#xff0…

Web开发技能树-HTML-class/id/name/tag

1 需求 需求1&#xff1a;CSS查找HTML元素 *tagclassid派生选择器 需求2&#xff1a;JavaScript查找HTML元素 通过id找到HTML元素&#xff1a;document.getElementById()通过标签名找到HTML元素&#xff1a;getElementsByTagName()通过类名找到HTML元素:document.getElemen…

分布式系统中的经典思想实验——两将军问题和拜占庭将军问题

文章目录 一、两将军问题1.1 问题描述1.2 深入理解两将军问题1.3 实验结论 二、拜占庭将军问题2.1 问题描述2.2 深入理解拜占庭将军问题2.3 解决方案 三、两将军和拜占庭问题的关系3.1 区别和联系3.2 应用与现实意义 参考资料 一、两将军问题 1.1 问题描述 两将军问题描述的是…

中国成熟工艺晶圆代工领域激烈的价格战即将落幕

据《经济日报》报道&#xff0c;中国第二大晶圆代工厂华虹半导体计划在下半年提高代工价格约10%。这标志着长达两年的成熟工艺代工价格下滑趋势的终结&#xff0c;意味着行业正从调整阶段走出&#xff0c;迈向更健康的发展轨道。受此影响&#xff0c;专注于成熟工艺的台湾晶圆代…

el-pagination 切换分页条数,会出现两次请求

文章目录 前言一、问题展示二、源码展示 前言 继上一次发现el-pagination在删除的时候pageNum不更新的问题。这次又发现了&#xff0c;切换分页条数&#xff0c;会出现两次请求。网上有很多解决方案&#xff0c;我就不多说了&#xff0c;我就简单记一下为啥会出现两次请求的问…

21. 第21章 算法分析

21. 算法分析 这个附录选自OReilly Media出版的Alen B.Downey的Think Complexity(2012)一书. 当你读完本书之后, 可能会像继续读读那本书.算法分析是计算机科学的一个分支, 研究算法的性能, 尤其是他们的运行时间和空间需求. 参见http://en.wikipedia.org/wiki/Analysis_of_al…

Vue前端通过Axios的post方式传输数据,后端为什么一直接收的值是null?

沃靠!这个细节太细了,搞了我两个多小时才找到这个bug。 一、 首先官方文档给我的post请求的例子是这样的: axios.post(/user, {firstName: Fred,lastName: Flintstone}).then(function (response) {console.log(response);}).catch(function (error) {console.log(error);})…

Linux下的抓包工具使用介绍

应用层 传输层 网络层 数据链路层 物理层 1&#xff09;tcpdump&#xff08;传输&#xff0f;网络层&#xff09; tcpdump -i eth0 tcpdump -i eth0 -vnn -v&#xff1a;显示包含有TTL&#xff0c;TOS值等等更详细的信息 -n&#xff1a;不要做IP解析为主机名 -nn&#xff1a;…

go协程的栈

go协程的栈默认有多少 Go 协程&#xff08;goroutine&#xff09;的栈初始大小并不是固定的多个栈&#xff0c;而是有一个默认的初始大小&#xff0c;这个大小在不同的 Go 版本中可能会有所不同。 目前&#xff0c;Go 1.17 版本中&#xff0c;默认的栈大小是 8KB。 关键点在于…

【Python的基本语法】

Python的基本语法包括以下几个方面&#xff1a; 注释&#xff1a; 注释以 # 开始&#xff0c;用于在代码中添加说明性文字&#xff0c;不会被解释器执行。 # 这是一个注释变量&#xff1a; 在Python中&#xff0c;变量不需要显式声明&#xff0c;直接通过赋值来创建。变量的命名…

RK平台Android单独编译内核

介绍如何在android平台下单独编译内核: 方式1(推荐): 在执行单独编译之前,必须有过整体编译Android,之后就可以单独编译内核开发,减少编译时间,具体操作如下: #!/bin/sh make ARCH=arm64 CC=../prebuilts/clang/host/linux-x86/clang-r383902b/bin/clang \ LD=.…

Shell 学习笔记 - 变量的类型 + 变量的赋值

1.6 Shell 变量的类型 Shell 变量分为四类&#xff0c;分别是 自定义变量环境变量位置变量预定义变量 根据工作要求临时定义的变量称为自定义变量&#xff1b; 环境变量一般是指用 export 内置命令导出的变量&#xff0c;用于定义 Shell 的运行环境&#xff0c;保证 Shell …

Vue51-插件

一、插件的定义 vue里面的插件&#xff0c;类似于游戏的外挂。 vue中插件的本质&#xff1a;一个对象&#xff0c;里面必须包含install方法。 二、插件的使用 2-1、创建一个插件js文件&#xff08;写在src中plugins.js&#xff09; 2-2、应用插件&#xff1a;Vue.use(插件) …

外键的基本概念

外键的基本概念 外键&#xff08;FOREIGN KEY&#xff09;&#xff1a;外键是一个或多个列&#xff0c;其值必须在另一个表中对应列的值中存在。外键用于维护两个表之间的关系&#xff0c;并确保引用的完整性。 外键在示例表结构中的应用 假设外键约束如下&#xff1a; FOR…

vue框架学习-----vue简介vue.js安装第一个vue程序部分vue指令

什么是vue? Vue (发音为 /vjuː/&#xff0c;类似 view) 是一款用于构建用户界面的 JavaScript 框架。它基于标准 HTML、CSS 和 JavaScript 构建&#xff0c;并提供了一套声明式的、组件化的编程模型&#xff0c;帮助你高效地开发用户界面。无论是简单还是复杂的界面&#xf…

微信小程序获取用户信息流程

微信小程序获取用户信息的流程可以分为以下几个步骤&#xff0c;下面将结合参考文章中的信息进行详细解释&#xff1a; 配置权限&#xff1a; 在小程序的app.json文件中配置scope.userInfo&#xff0c;以确保小程序可以请求用户信息授权。创建触发授权的交互元素&#xff1a; …

大学生计算机基础题(一)

嗨&#xff0c;大家好&#xff0c;我是异星球的小怪同志 一个想法有点乱七八糟的小怪 如果觉得对你有帮助&#xff0c;请支持一波。 希望未来可以一起学习交流。 一、单选题&#xff08;20小题&#xff0c;共30分&#xff09; 1、下列关于列表的说法中&#xff0c;错误的是…