一、C++介绍
C++是C语言的继承,它可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。C++擅长面向对象程序设计的同时,还可以进行基于过程的程序设计,因而C++就适应的问题规模而论,大小由之。

我给大家推荐的C++书籍如下:
《(C++版)信息学奥赛一本通》董永建 | 著
《C Primer Plus 第6版(中文版)》 美 Stephen Prata | 著

二、属于你的第一个C++程序!
【1】基本结构

  1. #include<bits/stdc++.h> //比赛可用C++万能头文件,也可以用iostream库
  2. using namespace std; //使用std(标准)名字空间的意思
  3. int main() //这一行为主函数的起始声明。

注意:main后面有一对圆括号(),这说明它是一个函数。C++里的所有函数后面都有一对圆括号(),括号里可以有一些输入参数。主函数main()中的内容,由一对花括号{}括起来。

【2】输出

  1. cout<<"lalala"; //cout是一个输出语句

公式:cout<<“语句”;
           cout<<变量名;

【3】主函数结束(即编译结束)

  1. return ;

那么完整代码如下 ↓

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. int main()
  4. {
  5.   cout<<"lalala";
  6.   return ;
  7. }

三、简单的加法

输入两个整数a,b,输出它们的和。
输入格式:两个整数以空格分开
输出格式:一个数

输入样例#1
20 30
输出样例#1
50


解题思路:
【1】定义

  1. int a,b,c; //定义a,b,c为整型变量

简单介绍一下 int :
int表示整型变量,是一种数据类型,用于定义一个整型变量,在不同编译环境有不同的大小,不同编译运行环境大小不同。
简单点说,int就是变量名,int后面接变量。
关于整型变量的知识,我以后会补充说明的。

【2】输入

  1. cin>>a>>b; //输入2个数,赋予变量a,b

也能写成这样:

  1. cin>>a;
  2. cin>>b;

公式:cin>>(变量名);

【3】输出

  1. c=a+b; //计算结果
  2. cout<<c<<endl; //输出a+b的值,即cout<<a+b<<endl;

endl 是换行符,在这里我们也可以不用 endl。

那么整个程序就是这样的:

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. int main()
  4. {
  5. int a,b,c;
  6. cin>>a>>b;
  7. c=a+b;
  8. cout<<c<<endl;
  9. return ;
  10. }

那减法呢?

  1. c=a-b;

只要换成减号就OK啦!
乘法和除法就不用我多说了吧。

四、赋值
赋值是C++的基本操作之一, = 是 赋值运算符 ,而不是 等于(==) 。

举个例子:

  1. a=;

这行代码的意思是 把1赋值给变量a。

五、运算符
1.关系运算符:
大于(>),小于(<),等于(==),大于等于(>=),小于等于(<=),不等于(!=)。

2.算术运算符:
加(+),减(-),乘(*),除(/),余(%),自增(++),自减(--)。

3.逻辑运算符:
并且(&&),非(!),或者(||)。

4.自增运算符:

如,x++表示在使用x后,使x的值加1,也就是 x=x+1。
++x表示在使用x之前,先使x的值加1,也就是x=x+1。

5.自减运算符:

与自增运算符的性质一样,x–表示在使用x后,使x的值减1,也就是 x=x-1。
–x表示在使用x之前,先使x的值减1,也就是x=x-1。

6.复合算术赋值:

比如:a+=b也可以表示成a=a+b。
减法,乘法,除法 同上。


下面是有关逻辑运算符中 余(%) 的说明:
先看下面的例子:

  1. %==;

回忆一下我们日常生活中的数学:

5÷2=2······1
1是5÷2的余数,所以5%2==1。

六、小试牛刀
设S=(R1+R2)/2,给定R1与S (-1000<=R1,S<=1000)(−1000<=R1,S<=1000),求R2。

输入样例 #1
11 15
输出样例 #1
19

输入样例#2
4 3
输出样例#2
2

强烈建议大家先自己试着写一遍,实在不会的话再看解题思路。


解题思路:

1、题目中说给定 R1 和 S ,也就是要我们输入 R1 和 S 。

  1. cin>>r1>>s;

2、我们知道关键的条件是 S=(R1+R2)/2 ,在数学上就是 S=(R1+R2)÷2 ,既然题目要我们求 R2 ,那么想一想就知道 R2=2×S-R1 ,即 R2=2*S-R1 。

  1. cout<<*s-r1

也可以这样:

  1. int r2;
  2. r2=*s-r1; //也可以直接 int r2=2*s-r1;
  3. cout<<r2;

七、顺序结构
题目:输入一个三位数,要求把这个数的十位数和百位数对调,然后输出对调后的数。
输入样例:
123
输出样例:
132

先给一个例子:123=1×100+2×10+3。
提示:回顾一下运算符 ↑ 。

不看解题思路,你能写出来吗?


解题思路:
1、定义并输入变量

  1. int x;
  2. cin>>x; //输入一个三位数

2.进行对调

  1. int a=x%; //提取个位数
  2. int b=x/% //提取十位数
  3. int c=x/% //提取百位数

3.重新组合对调后的数

  1. int n=c*+a*+b;
  2. cout<<n;

这样就OK啦!

八、结束
首先有些对不起大家,本文章的知识点内容有点乱,希望各位谅解qwq。
如果有时间的话,我就会完善部分文章内容的。
打字真的好累鸭,有什么不懂的就在评论区问我吧。
在 C++之路 #2 中,我会讲解 if、if—else 选择结构。
谢 谢 大 家 !
本文选自摘选自作者本人的CSDN博客,原文链接:https://blog.csdn.net/qq_36257171/article/details/90301722

C++之路 #1的更多相关文章

  1. webp图片实践之路

    最近,我们在项目中实践了webp图片,并且抽离出了工具模块,整合到了项目的基础模板中.传闻IOS10也将要支持webp,那么使用webp带来的性能提升将更加明显.估计在不久的将来,webp会成为标配. ...

  2. 多线程爬坑之路-Thread和Runable源码解析之基本方法的运用实例

    前面的文章:多线程爬坑之路-学习多线程需要来了解哪些东西?(concurrent并发包的数据结构和线程池,Locks锁,Atomic原子类) 多线程爬坑之路-Thread和Runable源码解析 前面 ...

  3. JavaScript进阶之路(一)初学者的开始

    一:写在前面的问题和话 一个javascript初学者的进阶之路! 背景:3年后端(ASP.NET)工作经验,javascript水平一般般,前端水平一般般.学习资料:犀牛书. 如有误导,或者错误的地 ...

  4. jQuery学习之路(1)-选择器

    ▓▓▓▓▓▓ 大致介绍 终于开始了我的jQuery学习之路!感觉不能再拖了,要边学习原生JavaScript边学习jQuery jQuery是什么? jQuery是一个快速.简洁的JavaScript ...

  5. 记录我这一年的技术之路(nodejs纯干货)

    2015年12月28日23:19:54 更新koa应用.学习型网站和开发者工具等 coding伊始 开始认认真真的学习技术还是2015.10.21日开始的,记得很清楚,那天,是我在龙湖正式学习的第一天 ...

  6. 一个IT人的成长路

    毕业四年多了,来深圳三年多了,经历了刚毕业的懵懂少年,成长为现在的成熟稳重青年.职场上,从刚毕业的小白,成长为现在可以成熟应对各种事情的老司机.经历过从初级研发工程师,到中级研发工程师,到高级研发工程 ...

  7. redis成长之路——(二)

    redis操作封装 针对这些常用结构,StackExchange.Redis已经做了一些封装,不过在实际应用场景中还必须添加一些功能,例如重试等 所以对一些常功能做了一些自行封装SERedisOper ...

  8. redis成长之路——(一)

    为什么使用redis Redis适合所有数据in-momory的场景,虽然Redis也提供持久化功能,但实际更多的是一个disk-backed的功能,跟传统意义上的持久化有比较大的差别,那么可能大家就 ...

  9. 一个软件开发者的BPM之路

    我是小林,一名普通的软件工程师,从事BPM(业务流程管理)软件开发工作.我没有几十年的技术底蕴,无法像大牛们一样高谈阔论,品评BPM开发之道:也不是资深的流程管理专家,能与大家分析流程管理的时弊.我只 ...

  10. Java 进阶 hello world! - 中级程序员之路

    Java 进阶 hello world! - 中级程序员之路 Java是一种跨平台的语言,号称:"一次编写,到处运行",在世界编程语言排行榜中稳居第二名(TIOBE index). ...

随机推荐

  1. MySQL之PXC集群搭建

    一.PXC 介绍 1.1 PXC 简介 PXC 是一套 MySQL 高可用集群解决方案,与传统的基于主从复制模式的集群架构相比 PXC 最突出特点就是解决了诟病已久的数据复制延迟问题,基本上可以达到实 ...

  2. jasypt

    jasypt-1.9.0.jar import org.jasypt.encryption.pbe.StandardPBEStringEncryptor; public class EncryptUt ...

  3. P4570 [BJWC2011]元素 线性基 + 贪心

    题意 给定n个物品,每个物品有一个编号和价值,问如何取使得拿到的物品价值总和最大,并且取得物品的编号的子集异或和不能为0. 思路 这是个贪心,我们先按照价值从大到小排序,然后贪心地取,如果当前要取的物 ...

  4. 洛谷P1273 有线电视网 树上分组背包DP

    P1273 有线电视网 )逼着自己写DP 题意:在一棵树上选出最多的叶子节点,使得叶子节点的值 减去 各个叶子节点到根节点的消耗 >= 0: 思路: 树上分组背包DP,设dp[u][k] 表示 ...

  5. codeforces 830 B. Cards Sorting(线段树)

    题目链接:http://codeforces.com/contest/830/problem/B 题解:其实这题就是求当前大小的数到下一个大小的数直接有多少个数,这时候可以利用数据结构来查询它们之间有 ...

  6. 牛客网暑期ACM多校训练营(第三场) A PACM Team 01背包 记录路径

    链接:https://www.nowcoder.com/acm/contest/141/A来源:牛客网 Eddy was a contestant participating in ACM ICPC ...

  7. codeforces E. Phone Talks(dp)

    题目链接:http://codeforces.com/contest/158/problem/E 题意:给出一些电话,有打进来的时间和持续的时间,如果人在打电话,那么新打进来的电话入队,如果人没有打电 ...

  8. POJ 2230 Watchcow 欧拉图

    Watchcow Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 8800   Accepted: 3832   Specia ...

  9. Mybatis系列(一)入门

    Mybatis系列(一)入门 mybatis简介 MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架.MyBatis 消除 了几乎所有的 JDBC 代码和参数的手工设置以及结 ...

  10. Mybatis打印SQL

    配置mybatis日志级别,打印SQL 1.方案一:配置日志级别 logging.level.org.springboot.demo.mapper=debug 其中org.springboot.dem ...