ACM练习——第一天

因为最近要去农大参加他们的算法邀请赛,然后赛制是ACM赛制的,所以我就直接很迷茫。

然后我就找到了牛客的ACM练习题,好好的练习一下ACM写法,而且我还要被迫写C++,哭了。

开始钻研

1.从Java过度到C++

题目源于牛客网:

A-A+B(1)_OJ在线编程常见输入输出练习场 (nowcoder.com)

 先来看一道题目:

可以先给出Java的写法

import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);// 循环读取每组数据while (scanner.hasNext()) {// 读取两个正整数 a 和 bint a = scanner.nextInt();int b = scanner.nextInt();// 计算 a + b 并输出结果int result = a + b;System.out.println(result);}scanner.close();}
}

然后就可以写出如下的C++代码

#include <iostream>int main() {// 循环读取每组数据while (true) {// 读取两个正整数a和bint a, b;if (!(std::cin >> a >> b)) {// 当没有更多输入时退出循环break;}// 计算a+b并输出结果int result = a + b;std::cout << result << std::endl;}return 0;
}

如果只学习过Python和Java我说句实话,直接懵逼

疑问1

#include <iostream>

#include <iostream>

这是什么

答: 

        `#include <iostream>` 是C++中的一个预处理器指令,它告诉编译器将 `<iostream>` 头文件包含到程序中。在C++中,`<iostream>` 是输入输出流库的头文件,提供了用于输入和输出的基本工具,例如 `cin` 和 `cout`。

具体来说:

-<iostream> 提供了用于输入和输出的流对象,包括 std::cin(用于标准输入)和

std::cout(用于标准输出)。
- 这个头文件还包括其他一些与输入输出相关的类和功能,比如 std::endl 用于输出换行。
- 使用 <iostream>是进行基本的输入输出操作的一种标准方式。

整个 `#include <iostream>` 的目的是在编译时将与输入输出相关的声明和定义包含到你的程序中,以便你可以使用这些标识符来执行输入输出操作。

例如,你可以使用 std::cout`来输出文本到控制台:

```cpp
#include <iostream>int main() {std::cout << "Hello, World!" << std::endl;return 0;
}
```

在这个例子中,#include <iostream>`允许你使用 std::cout 和 std::endl,而不需要显式地提供它们的定义。


疑问2

 于是就有一个精简的写法

using namespace std

using namespace std;那这是什么意思呢

答;

        using namespace std; 是C++中的一个声明,它表示使用标准命名空间(std 命名空间)中的所有标识符,而不需要在使用这些标识符时显式地加上 std::`前缀。

        在C++中,许多标准库的组件(如 cin、cout、endl 等)都定义在 std 命名空间中。为了使用这些组件,通常你需要在代码中加上 std:: 前缀,例如 std::coutstd::cin 等。

当你使用 using namespace std; 时,它告诉编译器在整个程序中都使用 std 命名空间中的标识符,这样你就可以直接使用 coutcin 等,而不需要写成 std::coutstd::cin

        这个语句的使用可以使代码更简洁,但在大型项目中,有时可能会导致命名冲突,因为不同的命名空间中可能有相同名称的标识符。在小型程序或学习阶段使用时,通常是方便的。但在实际开发中,一些团队可能更喜欢显式地指定使用哪些标识符,以避免潜在的命名冲突。


好继续看

疑问3

 std::cin >> a >> b这个是什么意思啊

答:

        std::cin 是C++标准库中用于标准输入的输入流对象std::cin 可以通过使用提取运算符 >> 从标准输入流中读取数据。在这里,std::cin >> a >> b 表示从标准输入中读取两个整数,分别存储到变量 a 和 b 中

具体解释如下:

std::cin 是输入流对象,用于从标准输入设备(通常是键盘)读取数据。
 >>       是提取运算符,用于从输入流中提取数据。
a 和 b 是两个整型变量,它们用于存储从输入流中读取的整数值。

        所以,std::cin >> a >> b 表示先将一个整数读入变量 a,然后再将另一个整数读入变量 b。这样的链式输入可以方便地一次性从输入流中读取多个值。

        在你的例子中,int a, b; std::cin >> a >> b; 用于读取两个正整数,这两个整数由空格分隔。例如,如果输入是 "1 5",那么 a 将被赋值为 1b 将被赋值为 5

当然也可以拆成两个句子

#include <iostream>int main() {int a, b;// 分开输入两个整数std::cin >> a;std::cin >> b;// 输出结果std::cout << "a: " << a << ", b: " << b << std::endl;return 0;
}

 

疑问4

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

这又是啥!!!

答:

        std::cout << result << std::endl; 是C++中用于输出到标准输出流(通常是控制台)的语句。这个语句使用了输出流对象 `std::cout` 和流插入运算符 `<<`。

具体解释如下:

std::cout 是C++标准库中的标准输出流对象,用于向标准输出设备(通常是屏幕)输出数据。
<<是流插入运算符,用于将右侧的数据插入到左侧的流中。

        在这个特定的语句中,它将整数变量 `result` 的值插入到标准输出流中,并紧接着插入一个表示换行的 std::endlstd::endl 代表一个换行符,并且会刷新输出缓冲区,确保输出立即显示在屏幕上。

        这个语句的效果是将 result 的值输出到控制台,并在输出结束时换行。如果 result 的值是 6,那么输出可能是:

```
6
```

        这样的语句通常用于调试或向用户显示程序的输出。

然后return 0;就完事了

总结

当使用C++编程时,

通过 #include <iostream> 引入输入输出流库。

std::cin 用于接收输入

std::cout 用于输出

std::endl 用于换行

使用 using namespace std; 可以直接在代码中使用 std 命名空间的标识符。

在C++中,return 0; 表示程序正常结束,返回值0通常表示成功执行。

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

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

相关文章

[工业自动化-14]:西门子S7-15xxx编程 - 软件编程 - STEP7 TIA博途是全集成自动化软件TIA portal快速入门

目录 一、TIA博途是全集成自动化软件TIA portal快速入门 1.1 简介 1.2 软件常用界面 1.3 软件安装的电脑硬件要求 1.4 入口 1.5 主界面 二、PLC软件编程包含哪些内容 2.1 概述 2.2 电机运动控制 一、TIA博途是全集成自动化软件TIA portal快速入门 1.1 简介 Siemens …

Java中的7大设计原则

在面向对象的设计过程中&#xff0c;首先需要考虑的是如何同时提高一个软件系统的可维护性和可复用性。这时&#xff0c;遵从面向对象的设计原则&#xff0c;可以在进行设计方案时减少错误设计的产生&#xff0c;从不同的角度提升一个软件结构的设计水平。 1、单一职责 一个类…

用于强化学习的置换不变神经网络

一、介绍 如果强化学习代理提供的输入在训练中未明确定义&#xff0c;则通常表现不佳。一种新方法使 RL 代理能够正常运行&#xff0c;即使受到损坏、不完整或混乱的输入的影响也是如此。 “大脑能够使用来自皮肤的信息&#xff0c;就好像它来自眼睛一样。我们不是用眼睛看&…

重磅发布 OpenAI 推出用户自定义版 ChatGPT

文章目录 重磅发布 OpenAI 推出用户自定义版 ChatGPT个人简介 重磅发布 OpenAI 推出用户自定义版 ChatGPT OpenAI 首届开发者大会 (OpenAI DevDay) 于北京时间 11 月 7 日凌晨 02:00 开始&#xff0c;大会上宣布了一系列平台更新。其中一个重要更新是用户可以创建他们自己的自定…

Spring Cloud学习(七)【Docker 容器】

文章目录 初识 DockerDocker 介绍Docker与虚拟机Docker架构安装 Docker Docker 基本操作镜像相关命令容器相关命令数据卷 Dockerfile 自定义镜像镜像结构Dockerfile DockerComposeDockerCompose介绍安装DockerCompose Docker镜像仓库常见镜像仓库服务私有镜像仓库 初识 Docker …

里氏代换原则

package com.jmj.principles.dmeo2.after;/*** 四边形接口*/ public interface Quadrilateral {double getLength();double getWidth();}package com.jmj.principles.dmeo2.after;/*** 长方形类*/ public class Rectangle implements Quadrilateral{private double length;priv…

WPF ToggleButton 主题切换动画按钮

WPF ToggleButton 主题切换动画按钮 仿造最近看到的html中的一个效果&#xff0c;大致思路是文章这样&#xff0c;感觉还可以再雕琢一下。 代码如下 XAML: <UserControl x:Class"WPFSwitch.AnimationSwitch"xmlns"http://schemas.microsoft.com/winfx/200…

取暖器/暖风机上架 亚马逊美国站UL1278测试标准要求

美国是一个对安全要求非常严格的国家&#xff0c;美国本土的所有电子产品生产企业早在很多年前就要求有相关检测。而随着亚马逊在全球商业的战略地位不断提高&#xff0c;境外的电子设备通过亚马逊不断涌入美国市场。“为保证消费者得安全&#xff0c;亚马逊始终强调带电得产品…

用python将csv表格数据做成热力图

python的开发者为处理表格和画图提供了库的支持&#xff0c;使用pandas库可以轻松完成对csv文件的读写操作&#xff0c;使用matplotlib库提供了画热力图的各种方法。实现这个功能首先需要读出csv数&#xff0c;然后设置自定义色条的各种属性如颜色&#xff0c;位置&#xff0c;…

Java进阶(垃圾回收GC)——理论篇:JVM内存模型 垃圾回收定位清除算法 JVM中的垃圾回收器

前言 JVM作为Java进阶的知识&#xff0c;是需要Java程序员不断深度和理解的。 本篇博客介绍JVM的内存模型&#xff0c;对比了1.7和1.8的内存模型的变化&#xff1b;介绍了垃圾回收的语言发展&#xff1b;阐述了定位垃圾的方法&#xff0c;引用计数法和可达性分析发以及垃圾清…

2012年7月11日 Go生态洞察:Gccgo在GCC 4.7.1中的集成

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…

2023亚太杯数学建模A题B题C题思路代码分析

文章目录 0 赛题思路1 竞赛信息2 竞赛时间3 建模常见问题类型3.1 分类问题3.2 优化问题3.3 预测问题3.4 评价问题 4 建模资料5 最后 0 赛题思路 &#xff08;赛题出来以后第一时间在CSDN分享&#xff09; https://blog.csdn.net/dc_sinor?typeblog 1 竞赛信息 2023年第十三…

github私有仓库开发,公开仓库发布版本

文章目录 github私有仓库开发,公开仓库发布版本需求背景实现思路GitHub Releases具体步骤广告 github私有仓库开发,公开仓库发布版本 需求背景 github私有仓库开发,公开仓库发布版本&#xff0c;既可以保护源代码,又可以发布版本给用户使用。许多知名软件项目都采用了这样的开…

仓库管理系统(WMS)升级解决方案—条码引入

在企业的整个供应链中&#xff0c;仓储起着至关重要的作用&#xff0c;如果不能保证正确的进货和库存控制及发货&#xff0c;将会导致管理费用的增加&#xff0c;服务质量难以得到保证&#xff0c;从而影响企业的竞争力。 传统简单、静态的仓库管理通常以结果为导向&#xff0…

高效批量剪辑、处理和添加水印,用视频批量剪辑高手轻松搞定!

您是否曾经在处理大量视频时&#xff0c;因为剪辑、处理和添加水印等问题而感到烦恼&#xff1f;是否因为这些问题而大大降低了您的工作效率&#xff1f;现在&#xff0c;我们为您推荐一款全新的视频批量剪辑工具——视频批量剪辑高手&#xff0c;让您的工作效率瞬间翻倍&#…

新型的铁塔基站“能源管家”

安科瑞 崔丽洁 引言&#xff1a;随着5G基站的迅猛发展&#xff0c;基站的能耗问题也越来越突出&#xff0c;高效可靠的基站配电系统方案&#xff0c;是提高基站能耗使用效率&#xff0c;实现基站节能降耗的重要保证&#xff0c;通过多回路仪表监测每个配电回路的用电负载情况&a…

MySQL索引优化

EXPLAIN详解 优先了解EXPLAIN&#xff0c;文章链接在下面。 EXPLAIN详解&#xff08;MySQL&#xff09; 索引数据结构 MySQL主要有两种结构&#xff1a;hash索引和BTree索引&#xff0c;InnoDB引擎默认是BTree索引。 索引分类 聚簇索引&#xff1a; 指索引的键值的逻辑顺…

基于若依的ruoyi-nbcio流程管理系统增加读取节点扩展属性的方法

更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码&#xff1a; https://gitee.com/nbacheng/ruoyi-nbcio 演示地址&#xff1a;RuoYi-Nbcio后台管理系统 我们的在流程设计器里会根据需要再不同的节点增加扩展属性&#xff0c;如何动态读取这些扩展属性&#xff…

Python:Unittest框架快速入门:用例、断言、夹具、套件、HTML报告、ddt数据驱动

快速看了套Unittest的入门教程 软件测试全套资料赠送_哔哩哔哩_bilibili软件测试全套资料赠送是快速入门unittest测试框架&#xff01;全实战详细教学&#xff0c;仅此一套&#xff01;的第1集视频&#xff0c;该合集共计11集&#xff0c;视频收藏或关注UP主&#xff0c;及时了…