C:
1.主函数void,无返回值
2.头文件带后缀.h
3.使用命名空间
4.scanf和printf,指定格式,快;<stdio.h>
输入输出的格式可定制,输入中可以有\n
scanf(“”,&)——char数组不用&;除%c外,空格和换行是结束的标志,%c可直接读入空格
printf——“%%”、“\\”、可直接用printf(A >= B ? "A >= B" : "A < B")
格式——%d(%nd右对齐,高位用空格补齐,总位数超过n位则不动;%0nd用0补位)、%lld、%lf(输入)、%f(输出%.nf保留n位小数,四舍六入五成双;四舍五入用round函数)、%c、%s
四舍五入六成双——5后有数字进一;无数字前凑偶
5.单个字符:a=getchar();putchar(a);
6.cstdio基于C++
7.字符串常量char str[25]=“”,输出str(%s)
8.ASCII码
9.‘’、“”
10.转义字符\n
11.布尔型stdbool.h
12.<math.h>:输入输出都是double
1.fabs(double x)取绝对值
2.floor(double x)向下取整;ceil(double x)向上取整——注意正负——%.0f(感觉和%d一样)
3.pow(double r,double p)返回r的p次方
4.sqrt(double x)算术平方根
5.log(double x)以e为底的对数;其他的用换底公式loga(b)=loge(b)/loge(a)
6.sin(double x);cos(double x);tan(double x)参数是弧度值;1度=π/180弧度;π=acos(-1.0)
7.asin(double x);acos(double x);atan(double x)结果是弧度值;
8.round(double x)四舍五入;返回值是double——约到个数位
13.for(int i)写法不允许
ANSI C++:
1.主函数int,返回0值
2.头文件不带后缀.h
3.使用系统库时使用命名空间std
4.增加了字符串类型string
5.cin和cout慢;<iostream>
6.布尔型直接用
7.for(int i)支持
计算机中:
1.运算符:
除法:最少要换成一个浮点数,否则是整除(除数不为0)
i++(先使i)、++i(后使i)——单独使用时无影响(好像比n+1快)
A?B:C(A真则B,否则C)——printf(j < n ? " " : "\n");末尾不能有空格且换行
位运算符:对二进制位进行操作
2.变量名:字母/下划线为首(其他数字可),区分大小写
3.整型:int——32bit(10的9次方)
long long——64bit(10的10次方/18次方),值+LL
unsigned
4.浮点型:默认六位
float——6、7位
double——15、16位
直接用double
5.符号常量(确定就不变;一般用全大写)
#define 标识符 常量(还有宏观的,一般不用;本质上是宏替换,这里恰好用来定义常量)
const 数据类型 变量名 = 常量;(推荐)
6.复合赋值:+=、/=(加快编译速度、提高代码可读性)
7.注释:/* */;//
8.typedef起别名;typedef 原名 别名;
9.选择结构
1. if(){
} else if(){
} else{
}
小技巧if(n)等同于if(n!=0);写法更简单(不一定非要1)
2.分支条件较多时
switch(){
case 常量表达式:
break;
default:
}
10.循环结构(<=用的多)
1.while(){
}
小技巧照旧
2.do{
}while();
实用性不高
3.for(i=1;i<0;i++){
}
使用频率最高,推荐
4.break直接退出循环
5.continue结束当前轮回
11.数组
1.一维数组
int a[10] 数组大小必须是整数常量,不可以是变量
a[0]
1.初始化int a[10]={,};{0};{}——未初始化,默认随机数
memset函数——头文件string.h;推荐
memset(数组名,值,sizeof(数组名));
初学者只0/-1,因为按字节赋值;其他值用fill函数(memset执行速度快)
2.递推:后面的结果由前面的得出,用于赋值。——顺推、逆推
3.数组大小较大(10的6次方),定义在主函数外
函数内部申请的局部变量来自系统栈
函数外部申请的全局变量来自静态存储区
2.二维数组——矩阵
int a[4][5]
1.初始化:按第一维的顺序
2.几维数组几个循环
3.字符数组
1.初始化
char str[5]={'',}
char str[5]=""——只限于初始化可以这样用
2.输入输出
1.scanf,printf: %c(单个字符,识别多)、%s(输入时不加&)
2.getchar,putchar: 单个字符
3.gets,puts: 一行,识别\n结束
3.存放
1、3在数组末尾自动添加\0,即NULL——(初始化时数组长度要多一个)
和2混用会乱码
4.string.h
1.strlen(str);——得到第一个\0前字符的个数
2.strcmp(str1,str2);——按字典序比较大小;逐个字符比较,直接结束
<,返回负整数
=,返回0
>,返回正整数
3.strcpy(str1,str2)——2复制给1
4.strcat(str1,str2)——2直接连到1后面
5.sscanf,sprintf
1.scanf(screen,"%d",&n)——从左至右,screen表示屏幕
printf(screen,"%d",n)——从右至左
2.sscanf(str,"",&n)——把字符串转换成其他类型
sprintf(str,"",n)——把其他类型转换成字符串
3.sscanf支持正则表达式
(一种文本模式,包括普通字符和特殊字符;regex;可以方便的处理文本,包括文本的查找、替换、验证、切分等)
12.排序
1.冒泡排序:交换。
n-1趟;每趟确定最右(大)的数;按顺序每两个交换