【卡码网C++基础课 1.A+B问题1】

news2024/12/23 17:29:50

文章目录

  • 题目描述与分析
  • 一、C++函数基础
  • 二、输入输出流
  • 三、变量
  • 四、写入数据
  • 五、输出数据
  • 六、尝试第一次提交
  • 七、循环输入输出
  • 八、延伸


题目描述与分析

题目描述:
你的任务是计算a+b。

输入描述:
输入包含一系列的a和b对,通过空格隔开。一对a和b占一行。

输出描述:
对于输入的每对a和b,你需要依次输出a、b的和。
如对于输入中的第二对a和b,在输出中它们的和应该也在第二行。

输入示例:

3 4
11 40

输出示例:

7
51

一、C++函数基础

每一个C++程序都包含了一个或者多个函数,但其中有一个函数必须命名为main,这是因为程序的启动,都是从main函数开始的。

所以我们首先要先写一个main函数:

int main() {
  return 0;
}

这个函数主要包含四部分:
返回类型
函数名
形参列表
函数体

下面这张图对应着函数的四个部分:
在这里插入图片描述
1.函数的返回类型
返回类型 指定函数执行后返回给调用者的数据类型。如果函数不返回任何值,则使用 void 类型。定义一个函数时,我们首先要在函数名之前放置一个关键字表示函数的返回类型,这个关键字代表的含义是函数执行完毕会返回什么类型的值,我们这里使用了int关键字,表示函数将返回一个整数类型的值(不带小数部分),比如我们在数学中使用的0、1、2就是整数。

一般函数的返回类型可以是 int,float,void等等,这些都是C++的内置数据类型,但是请记住,main函数的返回类型一定是int。

2.函数名
在后面,我们会定义很多个函数,为了区分这些函数,我们要给不同的函数起不同的函数名称,而且函数命名是有规范的,而这里由于是主函数,所以函数的名称为main,且不可更改。

3.函数的形参列表
函数名之后的括号内填充的就是形参列表,它定义了函数在被调用时可以接受的参数类型,参数之间用逗号分隔,在上面的代表中,形参列表是空的,表示没有传递形参。

4.函数体
从左花括号{开始, 到右括号}结束,这一部分就是函数体,函数体中可以有很多行代码,而上面的程序中只有一行return 0;, 这行代码表示程序已经执行完毕,并返回了一个状态码0,这个状态码可以反馈程序的执行状态,在大多数情况下,返回0表示程序正常退出,没有出现错误。

经过了上面的解释之后,你或许对函数有了一些理解,也或许没有,但没关系,我们可以把函数想象成一个盒子,这个盒子可以变换成洗衣机、榨汁机等等,函数的返回类型就代表盒子的种类,int就代表这是一个洗衣机,返回的结果是衣服,float代表这是一个榨汁机,返回的结果是果汁,函数名是你给这个盒子起的昵称,它可以按照规则去定义,只不过如果是main函数,它的名称就不可更改了,函数的形参列表就是我们往盒子扔进去的东西,我们可以把衣服或者水果放进去,而函数体是我们放进去的东西要经历的处理过程,经过函数的处理之后,返回的内容就是我们想要的结果。

让我们再重新认识一下刚才写的代码吧:

// int表示返回类型
// main表示函数名称,这里是主函数,名称不可更改
// ()内的是形参列表,这里的形参列表为空
int main() {
  // 这里是函数体的内容,return 0表示返回结果为0,函数正常执行
    return 0;
}

二、输入输出流

一个C++程序必须要有一个主函数(有且只有一个),所以我们要解决这道题目,首先也要写一个main函数,如下:

int main() {
    return 0;
}

题目要求我们计算a+b, 用正常的数学思维这很简单,就是将a的值和b的值相加就可以了,但是用计算机来解决这个问题,我们首先要解决的问题是:如何输入a和b两个数字呢?

C++语言为我们准备了一组内置库,包含了很多常用的功能, 并且这些内置库可以直接使用,而其中的内置库:iostream,就提供了输入和输出的功能,允许开发者从键盘读取输入并在屏幕上输出结果。

iostream库包含了两个基础类型,分别是istream(输入流) 和 ostream(输出流)

在 C++ 中,输入和输出操作通常是通过使用流进行的。流是一种从源(如键盘、文件、网络等)读取数据或向目的地(如屏幕、文件、网络等)写入数据的抽象。C++ 标准库提供了一系列用于输入输出的类,这些类封装了对各种输入和输出设备的操作。 比较形象的表达,就是我们要把键盘上的字符通过程序输入到电脑里,这个过程就是一个字符接着一个字符流入电脑的过程,所以叫输入输出流。

在 iostream 库 中,我们有两个对象可以使用,分别是 cin 和cout。 cin 是一个标准输入流对象,用于从键盘读取输入。cout 是一个标准输出流对象,用于向屏幕输出结果。

三、变量

我们已经知道了可以使用iostream中的cin和cout来解决输入输出,可是我们还有一个问题需要解决,那就是:系统怎么认识和标识我们输入的数字呢?比如说,我们想要输入两个数字100、100,系统如果使用100来标识100,那另外一个100应该怎么标识呢?

所以我们就需要在系统内部使用某样东西来指代和标识输入的内容,比如x = 100; y = 100, 这里的x, y在数学中被称为变量,在编程中也被称为变量,用来指代内容。

不过在数学中有整数、小数之分,那计算机在存储的时候也应该知道我们输入的x是一个什么类型的数字,这里我们输入的是整数,也就是前面使用的int类型。
所以我们首先需要定义两个变量a,b用来接收输入的内容,代码这么写:

int a; // 定义一个变量,名称为a, 用于接收一个整数
int b; // 定义一个变量,名称为b, 用于接收一个整数

但是为了简略,我们可以将代码写在一行,然后将类型略去,变量中间用逗号分隔。

int a, b;

四、写入数据

如何从键盘输入,给这两个变量赋值呢?
此时我们需要用到之前的输入流cin,代码如下:

std::cin >> a >> b;

这行代码就表示使用cin获取输入值,并将输入的值存储在变量a和变量b中

std::cin: 是C++标准库中的标准输入流对象,用于从键盘读取输入。
a: 是之前定义的变量,它将接收从输入流中读取的值,并且要求这个值是一个整数。
b: 是另一个变量,它也将接收从输入流中读取的值,并且要求这个值是一个整数。

1.std是什么?
std 是一个命名空间,:: 符号是作用域操作符。

当使用C++标准库的功能时,需要使用命名空间限定符来指明你要使用的内容位于哪个命名空间中。通常,会使用 std:: 的前缀,表示正在使用C++标准库中的内容。

也就是说,为了避免我们使用的变量和标准库定义的变量名称相同而引起冲突,以及避免不同标准库之间的变量名冲突,标准库定义的所有名字都在命名空间std中,如果我们要使用cin的话,就要先找到命名空间,然后再使用cin,即:std::cin

2.输入运算符(>>)
输入运算符用于将数据从输入流(如键盘、文件等)读取到变量中。

int number;
std::cin >> number; // 从输入流读取一个整数并存储在变量 number 中

在连续读取多个值时,可以使用链式输入操作,多个值之间用空格隔开。

int a, b;
std::cin >> a >> b; // 从输入流读取两个整数并存储在变量 a 和 b 中

五、输出数据

此时我们已经获取到了从键盘上输入的两个数字,就要做运算了。本题是求两个数字相加,那么 代码逻辑就是 a + b;
这里我们可以再定义一个变量 result; 用来存放我们的计算结果。
代码就是

int result = a + b;

最后要把这个结果输出在屏幕上,就要使用到输出流 std::cout,它也是标准库里的一个对象,此外还需要使用到输出运算符(<<),将数据输出到屏幕中, 它的用法和输入运算符类似。

输出结果:

std::cout << result << std::endl; 

我们输出结果时,每个结果都要占一行,也就是说每个输出结果后要有一个回车,那么std: :end就是这个作用,表示结束当前行。

六、尝试第一次提交

根据目前掌握的内容可以写出如下代码:

int main() {
    int a, b;  // 定义两个整型变量 a和b
    std::cin >> a >> b; // cin表示输入,输入a和b的值
    int result = a + b; // 定义整型变量 result, 接收 a和b 相加的值
    std::cout << result << std::endl; // cout表示输出,输出result的值,endl表示回车
    return 0;
}

但是这份代码并不能运行,因为我们使用了C++的内置库iostream库,因为这个库里有cin和cout
所以我们需要引用这个库,才能使用cin和cout,引用这个库需要在代码最上方加上 include<iostream>
此时C++代码如下:

#include<iostream>  // 引入iostream库
int main() {
    int a, b;
    std::cin >> a >> b;
    int result = a + b;
    std::cout << result << std::endl;
    return 0;
}

七、循环输入输出

题目中是连续输入a,b并计算两数之和,这里可以使用while循环,while语句表示只要给定的条件是真的,就反复执行这一段代码,直到条件变假为止。

while(条件) {
  // 循环代码块
}

在每次循环中,会判断条件的真假。如果条件为真,循环体内的代码块会被执行。然后,循环会再次检查条件,并根据条件的真假决定是否继续执行循环体。

while循环可以这样理解,假设条件为“我还没有学会C++”, 只要这个条件还是真的(判断条件的真假),我就会每天坚持努力学习(循环体),如果我已经学会了C++, 我才会停止学习(退出这个循环)。

所以下面的代码就表示持续输入a 和 b,直到遇到人为终止程序(不输入时)才会结束。

// 持续输入 a和b
while(std::cin >> a >> b) {
  
}

本题完整代码如下:

// 引入输入输出流库,它允许我们使用输入输出功能。
#include<iostream>
// 程序的入口
int main() {
         // 声明两个整数变量 a 和 b,这些变量将用于存储从输入流读取的整数值。
    int a, b;
      // 循环输入,在输入有效整数时一直执行
      // cin >> a >> b 表示从键盘依次读取两个整数并将它们存储在变量 a 和 b 中。
    while(std::cin >> a >> b) {
          // 计算变量 a 和 b 的和,并将结果存储在变量 result 中。
        int result = a + b;
          // 使用输出流将计算结果输出到屏幕上,然后换行。
        std::cout << result << std::endl;
    }
  // 程序正常结束
    return 0;
}

八、延伸

上面我们提到了命名空间 std。cin、cout都属于 std命名空间里的对象。

那每次使用 cin 和 cout的时候 ,都要加上 std:: ,这显得十分繁琐,为了简化这个操作,我们也可以在函数开头,统一申明使用命名空间 std,这样就不用每次使用 cin,cout 都要加上 std::。

代码是这样的:

#include<iostream>
// 这行代码使得我们可以直接使用 cout 和 cin,而无需每次都写 std::
using namespace std;
int main() {
    int a, b;
    while(cin >> a >> b) {
        int result = a + b;
        cout << result << endl;
    }
    return 0;
}

C++中内置了许多不同的数据类型,而常用的有以下几个:

整型
int: 整数类型,比如0、1、-1等
char:字符类型,用于表示单个字符,比如a、b、c、!等
bool: 布尔类型:表示真或假,真为true, 假为false, 常用于条件判断

浮点型
float:单精度浮点数类型,通常用于表示小数。
double:双精度浮点数类型,它和float类型的区别是double具有更高的精度, 能表示的小数位更多。

后面我们还会学习更多的数据类型,比如字符串、指针、自定义类型等,但在这里,大家只需要先了解有这5种常见的即可。

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

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

相关文章

《内生性随机边界模型及 Stata 具体操作步骤》

目录 一、文献综述 二、理论原理 三、实证模型 四、稳健性检验 五、程序代码及解释 一、文献综述 自 Aigner 等&#xff08;1977&#xff09;、Meeusen 和 van den Broeck&#xff08;1977&#xff09;引入随机前沿模型以来&#xff0c;该模型已有 40 多年的历史。它由确定…

【Qt】Qt窗口 | QStatusBar 状态栏

文章目录 一. 状态栏二. 代码创建&使用状态栏1. 创建状态栏2. 在状态栏中显示实时消息3. 在状态栏中显示控件 一. 状态栏 状态栏是应用程序中输出简要信息的区域&#xff0c;通常位于窗口的底部&#xff0c;用于显示应用程序的状态信息或提供用户与应用程序交互的反馈。一…

qt的model view 使用示范

首先在ui界面拖一个tableView ui->tableView->setModel(mission_model); 然后设置model的qss&#xff0c;并用view绑定model void SettingWidget::init_missionmodel(QString plane_type, QString mission_name) {if(mission_model)delete mission_model;mission_model…

《智能计算系统:从深度学习到大模型(第2版)》重磅上市!

大家好&#xff0c;我是herosunly。985院校硕士毕业&#xff0c;现担任算法研究员一职&#xff0c;热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名&#xff0c;CCF比赛第二名&#xff0c;科大讯飞比赛第三名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的…

PINCE——Linux 原生游戏内存修改器,一款替代 Cheat Engine 的强大游戏修改器,Linux 游戏玩家必备神器!

PINCE——Linux 原生游戏内存修改器&#xff0c;一款替代 Cheat Engine 的强大游戏修改器&#xff0c;Linux 游戏玩家必备神器&#xff01; PINCE 是 GNU Project Debugger(GDB) 的前端/反向工程工具&#xff0c;常用作程序调试器&#xff0c;主要用于游戏领域&#xff0c;修改…

docker容器图形化管理之Portainer

docker容器轻量级图形页面管理之Portainer 1、查看portainer镜像 [rootlocalhost ~]# docker search portainer 2、下载portainer镜像 [rootlocalhost ~]# docker pull portainer/portainer #选择喜欢的portainer风格镜像下载 3、启动dockerui容器 [rootlocalhost ~]# doc…

京东物流开放平台对接云打印功能

这是京东开发文档的流程图&#xff0c;根据自己的需求分析&#xff0c;我选择的是接入方式一 这是接入方式一的流程图: 所有第一步我们先下载他的打印组件并安装&#xff1a;京东物流开放平台 第二步呢就是看你有没有自定义快递面单的需求&#xff0c;由于目前我没有特别的需…

录屏选区指南,优选3款支持区域录制的录屏软件!

在数字内容创作和分享的时代&#xff0c;录屏软件成为了游戏玩家、教育工作者和视频博主的重要工具。无论是想要捕捉精彩的游戏瞬间&#xff0c;还是制作教学视频&#xff0c;选择正确的录屏区域都是确保内容质量和观众体验的关键。然而&#xff0c;面对市面上众多的录屏软件&a…

HDFS回收站-删除策略详解

HDFS拥有回收站的功能,将某一段时间的删除的数据,放到指定路径(/user/{username}/.Trash),至少保留指定的时间,然后一起删除。 现实中发现回收站里有该删除的却没有删除,和回收站原理逻辑对不上。 以下从源码上看看到底是什么原因导致的。 背景 某HDFS集群指定数据保留…

Docusign Maestro:智能自动化,实现无缝协作,让签约更简单!

作为 Docusign IAM 引擎的核心部分&#xff0c;Maestro 能够帮助你自动化、定制并连接你的协议工作流程。你可以完全按照自己的需求&#xff0c;定制每一个流程细节。无论是什么类型的协议&#xff0c;Maestro 都能减少繁琐的手动操作&#xff0c;让最终用户更快、更轻松地完成…

springboot网上商品订单转手系统论文源码调试讲解

第2章 开发环境与技术 开发网上商品订单转手系统需要搭建编程的环境&#xff0c;也需要通过调查&#xff0c;对各个相关技术进行分析&#xff0c;选取适合本系统开发的技术与工具。 2.1 MYSQL数据库 题目确定了是一个应用程序之后&#xff0c;就开始按部就班的进行设计与分析…

7个超有意思的网站,值得收藏起来慢慢用

分享7个超有意思的网站&#xff0c;绝对让你意想不到&#xff01; 1、动漫捏脸 Picrew&#xff5c;つくってあそべる画像メーカー 一个超有趣的二次元动漫捏脸网站&#xff0c;你可以随意制作自己喜欢的各种动漫形象、头像等画作&#xff0c;搭配B站教程食用更佳哦~ 搭配教…

全场景 真利旧 强运维!麒麟信安打造县域自主创新云办公解决方案

近年来&#xff0c;国家正大力推进信息技术自主创新&#xff0c;减少对外依赖&#xff0c;并在关键行业加速推广和应用自研技术产品。现全国乡镇以上各级党政机关积极响应国家战略指引&#xff0c;全面实施自主创新办公系统建设升级。但在升级过程中&#xff0c;却因设备架构和…

4款AI 生成 PPT的工具,帮你赶上演示文稿的新趋势!

AI 生成 PPT 最大的优势就在于它能够帮助我们提高效率。如果我们自己制作的话就需要花费大量的时间去收集资料、构思布局、设计排版。而现在&#xff0c;有了AI工具&#xff0c;一切就迎刃而解&#xff0c;如果大家需要这样的工具&#xff0c;可以看看这4款。 1、笔灵办公 直通…

网络硬盘录像机NVR程序源码海思3520D NVR 安防监控智能升级运用方案

随着安防技术的不断发展&#xff0c;传统的监控系统正逐步向智能化方向转变。海思Hi3520D作为一款高性能的网络视频处理芯片&#xff0c;在NVR&#xff08;网络视频录像机&#xff09;领域有着广泛的应用。本方案旨在探讨如何利用海思Hi3520D芯片的强大功能对现有的NVR系统进行…

软件测试需求分析有多重要?软件测评公司如何进行测试需求分析?

软件测试需求分析是指在软件测试过程中&#xff0c;对用户需求和功能需求进行深入理解和评估的过程。它主要帮助测试团队明确测试目标、制定测试策略&#xff0c;并根据需求制定测试用例。这一过程不仅提高了测试的效率&#xff0c;也降低了后续开发与测试中可能出现的问题。 …

Qt 0819作业

一、思维导图 二、字体对话框的实现 #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this); }Widget::~Widget() {delete ui; }void Widget::on_pushButton_clicked(…

ant design pro 技巧之自制复制到剪贴板组件

ant design pro 如何去保存颜色ant design pro v6 如何做好角色管理ant design 的 tree 如何作为角色中的权限选择之一ant design 的 tree 如何作为角色中的权限选择之二ant design pro access.ts 是如何控制多角色的权限的ant design pro 中用户的表单如何控制多个角色ant des…

【PyCharm安装】安装Python和PyCharm的注意事项!!!PyCharm常用的插件介绍。

安装Python的注意事项 确定所需版本&#xff1a;根据您的项目和库的要求&#xff0c;选择合适的Python版本进行安装。不同版本的Python可能支持不同的库和特性。确保网络连接&#xff1a;如果您使用的是在线安装方式&#xff0c;确保您的计算机有可靠的网络连接&#xff0c;以…

《Techporters架构搭建》-Day07 集成API文档工具

API文档化 前言API文档化历史集成Knife4j常用注解基本信息注解分组注解请求方法注解路径注解 使用示例 源码地址&#xff1a;请看day07 前言 在现代软件开发中&#xff0c;良好的API文档是团队协作和项目管理中不可或缺的一部分。OpenAPI规范&#xff08;前身为Swagger&#x…