C++|从零开始学C++之基本知识


C++语法基础

  • 变量、输入输出、表达式与顺序语句
  • 判断语句
  • 循环语句

所有题目来自ACWing
点这注册AcWing 邀请码:SMDRN

从零开始学C++系列
从零开始学C++之基本知识
从零开始学C++之数组和字符串
从零开始学C++之函数、结构体、类、指针、引用
从零开始学C++之STL容器、位运算与常用库函数
变量、输入输出、表达式与顺序语句
  • 头文件
//常用头文件 #include 包括 cin cout scanf printf#include 包括 scanf printf#include 例如 double sqrt(double x); //平方根 double pow(double x, double y); //指数 long int abs(long int x); //绝对值 double fabs(double x); //浮点数绝对值//万能头文件 #include//加快cin和cout的速度 ios::sync_with_stdio(false);

  • 变量
类型 字节大小
char 1B
int 4B
float 4B
double 8B
long long 8B
long double 大多为16B
  • 输入输出 ?
scanf("%c%c", &a, &b); // 会把空格读入 cin >> a >> b; // 会忽略中间的空格(1个或多个)

  • 基本模板
#include using namespace std; const int N=1e7+10; int main() { ios::sync_with_stdio(false); return 0; }




656. 钞票和硬币
判断语句 printf 格式化输出
%5d:最少占用5的宽度,居右,左边加空格 %-5d:居左,右边加空格 %05d:居右,左边补0 %5.1f:宽5,保留1位小数




668. 游戏时间2


循环语句
  • while循环 先判后执行
// 连续输入n次 while(n -- ){ }

【C++|从零开始学C++之基本知识】逗号运算符:C++中的,运算符对逗号前后的表达式进行运算,然后舍弃前一个表达式的返回值,仅仅返回最后一个表达式的返回值,例
if (表达式1, 表达式2, 表达式3) {...}
等价于
表达式1; 表达式2; if (表达式3) {...}//节省代码行数

// 输入0,则结束输入不做处理 // 大多数情况下其返回值为cin本身(非0值),只有当遇到EOF输入时,返回值为0。 while(true){ } while(cin >> x && x){ } //判断两个条件 while(cin >> x , x){ } //忽略逗号前,判断逗号后面的x值while(scanf("%d", &x) && x > 0) { } // 写法1 while(scanf("%d", &x), x > 0)} // 写法2 while(~scanf("%d", &x)) { }// 判断是否非法输入(EOF),用于文件读取



  • do - while 循环:先做后判 至少会执行一次


  • 欧几里得距离 / 曼哈顿距离 / 切比雪夫距离
  1. 欧几里得距离
    也就是两点之间距离
  2. 曼哈顿距离:两个点在标准坐标系上的绝对轴距总和
    dis=abs(x1-x2)+abs(y1-y2)
    用来解决 菱形问题 727 菱形
  3. 切比雪夫距离:各坐标数值差的最大值
    dis=max(abs(x1-x2), abs(y1-y2))



725. 完全数

    推荐阅读