C++语法基础
所有题目来自ACWing
点这注册AcWing 邀请码:SMDRN
👇从零开始学C++系列👇
从零开始学C++之基本知识
从零开始学C++之数组和字符串
从零开始学C++之函数、结构体、类、指针、引用
从零开始学C++之STL容器、位运算与常用库函数
变量、输入输出、表达式与顺序语句
- 头文件
//常用头文件
#include<iostream>
包括 cin cout scanf printf
#include<cstdin>
包括 scanf printf
#include<cmath>
例如
double sqrt(double x);//平方根
double pow(double x, double y); //指数
long int abs(long int x);//绝对值
double fabs(double x);//浮点数绝对值
//万能头文件
#include<bits/stdc++.h>
//加快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<bits/satdc++.h>
using namespace std;
const int N=1e7+10;
int main()
{
ios::sync_with_stdio(false);
return 0;
}
判断语句
printf 格式化输出
%5d:最少占用5的宽度,居右,左边加空格
%-5d:居左,右边加空格
%05d:居右,左边补0
%5.1f:宽5,保留1位小数
题
循环语句
- while循环 先判后执行
// 连续输入n次
while(n -- ){ }
逗号运算符: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 循环:先做后判 至少会执行一次
- 欧几里得距离 / 曼哈顿距离 / 切比雪夫距离:
- 欧几里得距离
也就是两点之间距离 - 曼哈顿距离:两个点在标准坐标系上的绝对轴距总和
dis=abs(x1-x2)+abs(y1-y2)
用来解决菱形问题
727 菱形 - 切比雪夫距离:各坐标数值差的最大值
dis=max(abs(x1-x2), abs(y1-y2))
题
725. 完全数