1.#include <iostream>//包含头文件名iostream
2.using namespace std;//使用std命名空间
3.int main() //int,返回值是整数.main,程序的入口函数
4.cout << "Hello,World!" << endl;//cout,输出 .endl,换行
5.int a,b,c;//int,整数类型
6.cin>>a>>b>>c;//cin,输入
7.double a,b,c;//double,双精度浮点型
8.double d =(a+b)/2.0;//在不想改变a,b整数类型的情况下 可使等式一边变成小数类型
9.int z1=b-(a++);//a++或者++a相当于a=a+1
10.cout<<a/b<<" "<<a%b;//%-模,求余
11.n3=n1>n2;//在计算机中0被认为是false(假),任何非零的数都被认为是true(真)
cout<<n3;//所以,因为第上一行上的n1>n2是假的,所以n3==0
12.n3=n1<n2;//在计算机中0被认为是false(假),任何非零的数都被认为是true(真)
cout<<n3;//所以,因为第上一行上的n1<n2是假的,所以n3==任何非零的数
13.sizeof();能算出存储空间的大小。
14.float a;
cin>>a;
int b=int(a);//这就是强制类型转换
char c1='a';
16.char c2='A';
15.printf("%d",c1),用这个式子可以求出a的ASCLL编码
16.c1=c1-32;//因为小写a的ASCLL码大于大写A的ASCLL码32个数,所以减32就可以变成大写A
c2=c2+32;//因为大写A的ASCLL码小于小写a的ASCLL码32个数,所以加32就可以变成小写a
17.cout<<char(ascii);//这也是强制转换
18.getchar();是字符输入函数,一次只能接受单个字符,输入数字也按字符处理,使用时需要包裹头文件<cstdio>
使用方法:char ch;
ch =getchar();
19.printf可以保留小数,但需要包裹头文件<cstdio>
20.putchar函数是字符输出函数
使用方法:putchar(ch);
21.s=sqrt(p*(p-a)*(p-b)*(p-c));//sqrt();是开平方符
22.#include<cmath>//使用sprt();所要包裹的头文件
23.fabs();是求绝对值函数
24.#Include<cmath>//是使用 fabs();所需的头文件
25.pow(x,y);求x的y次方
26.#Include<cmath>是pow();的头文件
27.(x1*y2+x2*y3+x3*y1-x1*y3-x2*y1-x3*y2)/2是计算机中计算三角形面积的公式
28.int ans=n-ceil(1.0*y/x);//ceil();是向上取整函数
29.#include<cmath>//是向上取整函数的头文件
30.if(ans<0) ans=0;//判断语句
31.if(b<a){
swap(a,b);//swap();是交换函数,使用时把要交换的两个数在括号里交换位置即可。
32.else{ //这是“其他”的意思
33.if((a<60&&b>=60)||(b<60&&a>=60))//"||"是分隔两种情况的符号,只要符合其中一种, 就执行下面的动作
{
cout<<1;
}
- switch(n)//swich函数
{
case 1://"case"判断n的值是否为1,最后是加冒号。
cout<<"Monday";
break;//"break"可使程序跳出switch,而执行switch之后的语句
switch(n)//swich函数
{
34.num4--;//"--"是自减符
num5++;//"+"是自加符
35.num4-=2;//"-=2"是自减二的意思
36.for(int i=1;i<=n;i++)//i=1是给i赋的值,i<=n是条件,如果不符合,就会直接终止程序
//i++的意思是每循环一次就加一
37. int oddsum=0;//想累加就必须要对被累加数赋值
int evensum=0;//想累加就必须要对被累加数赋值
for(int i=1;i<=n;i++)
{
if(i%2==0)
{
oddsum += i;//累加
38. int bai=a/100;//提取百位数的方法
int shi=a/10%10;//提取十位数的方法
int ge=a%10;//提取个位数的方法
39.cout<<fixed<<setprecision(4);//setprecision();可以保留小数 ,保留位数写在括号里。
40.#include<iomanip>//是运行 setprecision();的头文件
41.一个数对10取整就是删除末位
42.一个数对10取余就是取出末位
43.循环分离法:
取余10取出末位
取整10删除末位
44.while(true);是无限循环的意思
45."1e-8"是1乘以10的-8次方的意思
46.double类型的数不能直接与0进行对比,可与0.00000001进行对比
47. if(n%7==0||ge==7||shi==7||bai==7)//||是或者的意思
48.bool a[1001]={};//bool a[1001]={};的意思是把数组里数初始值全部赋值为零
49.a[j]=!a[j];//a[j]=!a[j]的意思是取反a[j]并把值赋给a[j]
50.bool a[1001];//在数组被定义为布尔变量时初始值都为零
51.continue;//意思是不进行下面的操作,直接进入新的循环
52.//埃氏筛
//质数的倍数一定不是质数
//所以只要从最小的数开始对质数的倍数进行标记,就可以找出质数
53. for(int i=1;i<=n;i++) //这个方法叫做“遍历”可以取出1-n之间的数据
{
cout<<a[i]<<" ";
}
54.round();是四舍五入函数
55.cin>>s;//cin过滤空格
56.getline(cin,s)是接收一个字符串,可以接受空格并输出的意思
57.s.size()可以计算s的长度
58.string定义的类型是字符串
59.数组定义在int main()之前,可以不占栈的空间,定义的数可以稍微大一些。
60.res.erase();可以删除指定元素 res.erase(被删除元素的位置,要删除的数量)
61.#include<algorithm>是sort();排序函数的头文件
62.bool cmp(string A,string B)//cmp是比较指令,可以对括号里的两个数进行比较,比较规
{
return A<B;则在下面括号里
}
63.sort();是排序函数,括号里前面的都是要排序的数或数的范围,最后一个是按照什么规则进行排序
64.void strtolower(string& s)
{
for(int i=0;i<s.size();i++)
{
if(s[i]>='A'&&s[i]<='Z')
{
s[i]+=32;//大写比小写多32
}
}
}
strtolower();函数可以把字符串转换为小写
65.void delSpace(string& s)
{
string tmp;
for(int i=0;i<s.size();i++)
{
if(s[i]!=' ')
{
tmp+=s[i];
}
}
s=tmp;
}
delSpace();函数的功能是删除一个字符串中的所有空格
66.void reverseStr(string& str)
{
int i=0,j=str.size()-1;
while(i<j)
{
swap(str[i++],str[j--]);
}
}
reverseStr(str);函数可以把字符串进行反转
67.void verse(string&str)
{
for(int i=0;i<str.size();i++)
{
if(str[i]>='A'&&str[i]<='Z')
str[i]+=32;
else if(str[i]>='a'&&str[i]<='z')
str[i]-=32;
}
}
verse(s);函数可以把字符串转换为小写
68.struct node//给a[i]定义后缀,如a[i].name
{
int grade;
string name;
}a[101];
67. int n=s.size();
maxx=max(maxx,n);//求最长的字符串的长度
minx=min(minx,n);//就最短的字符串的长度
68.cout<<(s1==s2?"YES":"NO");//意思是如果s1==s2那么输出YES,反之输出NO
69.if(s1.find(s2)!=string::npos)//判断字符串s1是否包含字符串s2
70.s.erase(s.size()-1,1);//erase(int index,int num)删除下标从index开始的num个元素
71.bool isWq(int x)
{
int s=0;
for(int i=1;i<x;i++)
{
if(x%i==0)
{
s+=i;
}
}
return s==x;
}
if(isWq(i))
{
cout<<i<<endl;可以判断一个数是否是完全平方数
}
72.bool isPrime(int x)括号里的是参数,表示参与比较的数的类型是整数类型
{
for(int i=2;i*i<=x;i++)
{
if(x%i==0)return false;
}
return true;
}
if(isPrime(i))
{
cnt++;可以判断一个数是否是质数
}
赋值: int 整数类型 4byte(32bit) %d
float 单精度浮点型4byte(32bit) %f
double 双精度浮点型8byte(64bit) %lf
Char 字符 1byte(8bit) %c
Bool 布尔类型(定义真假) 1byte(8bit)
关系运算符:
运算符 含义
> 大于
< 小于
>= 大于或等于
<= 小于或等于
== 等于
!= 不等于
逻辑运算符 :
运算符 含义 效果
&& 与 将两个表达式连接成一个,两个表达式必须都为ture,整个表达式才为ture。
|| 或 将两个表达式连接成一个,必须有一个或两个表达式为ture,才能使整个表达式为ture,只要其中有一个为ture,那么另外一个就变得无关紧要。
! 非 反转一个表达式的真相,它使一个表达式从ture变成了 false,或者从false变成了ture。
四大基础排序算法
- 冒泡排序:不断比较相邻元素的大小,把较大或较小值向上浮动
- 选择排序
- 插入排序
- 桶排序