//变量:
//变量创建的语法:书库类型 变量名 = 变量初始值
//eg: int(整形变量) a = 10;
//常量:
//用于记录程序中不可更改的数据
//两种定义常量的方法:
//1、#define 常量名(宏常量) 常量值
//define Day 7
//define Day 14(会报错,不可以修改,即不能加这句)
//cout << "一周总共有:" << Day << "天" << endl;(输出这个常量)
//2、const修饰的变量
//const int month = 12;
//month = 24;(会报错,不可以修改,即不能加这句,const修饰的变量也称作为常量)
//cout << "一年总共有:" << month <<"个月份"<< endl;
//注释:
//单行注释
//关键字(预先保留的单词,是标识符),eg:在定义变量或者常量的时候,不要用关键字,会产生歧义(是数据类型还是变量名称,产生了矛盾)
//https://www.runoob.com/w3cnote/cpp-keyword-intro.html, 具体含义
//标识符(变量、常量、函数、语句块等命名的泛统称)
//标识符命名规则:(eg:关键字与标识符的区别:关键字是系统自带的 ,标识符是自定义的。关键字是一种特殊意义的标识符,当一般把它当成关键字,如if只能是关键字)
//1、标识符只能由字母 数字 下划线组成
//2、第一个字符必须是字母或者是下划线,不能是数字如int 123就不行
//3、/标识符的字母是区分大小写的,如dk不等于DK
//数据类型(C++规定在创建一个变量或者常量时,必须要指定出相应的书库类型,否则无法给变量分配内存)
//eg:数据类型的存在意义:给变量“合适”的内存空间
//1、整型(即表示整数类型的数据):
// short(短整型) 大小:2字节 取值范围:-2^15~2^15-1 如short num1 = 10; (2^15=32768)
// int(整型) 大小:4字节 取值范围:-2^31~2^31-1 如int num2 = 10;
// long(长整型) 大小:win 4字节 linux 4(32位)8(64位) 取值范围:-2^31~2^31-1
// long long(长长整型) 大小:8字节 取值范围:-2^63~2^63-1 如long long num4=10
//输出:cout << "num1=" << mum1 << endl;
//eg:整形大小比较:/short,dev vs2019 xcode clion 不需要加)
//6、布尔数据类型 bool:在c++中代表真或假的一个值
// bool类型(大小1字节)只有两个值:
// true 真(本质是1) false 假(本质是0)
// 语法 bool 变量名 = true //除了0以外都是真
//7、数据的输入(输出是cout,对应的就是输出cin)
//列子:inta = 0 (这里用整型做例子,其他数据类型通用)
// cout<<"请给整型变量a赋值;"<> a;
// cout<<"整型变量a ="<=(大于等于) 4= =3 结果 1
// 逻辑运算符,用与根据表达式中的值返回真值或假值
// 1、非:! 实例:!a 含义:如果a为真,则a为假;如果a为假,则a为真
// 2、与:&& 实例:a&&b 含义:若果a和b都为真,则结果为真(1),否则为假(0)
// 3、或:||(键盘中的右斜杠)实例:a||b 含义:如果a和b有一个为真 则结果为真,二者都为假是,结果为假 cout<<(||a)<> score; (从键盘获取分数)
//
// (2):打印用户输入的分数
// cout<<"您输入的分数为"< 600)(这里语句后面不能加分号;http://bbs.itheima.com/thread-208805-1-1.html)
// {
// cout<<"恭喜你考上了一本大学"<> score;
//
// (2):提示用户输入的分数
// cout<<"您输入的分数为"<600)
// {
// cout<<"恭喜你考上一本"<> score;
//
// (2):提示用户输入的分数
// cout<<"您输入的分数为"<600)
// {
// cout<<"恭喜您考上一本"<500)
// {
// cout<<"恭喜您考上二本"<400)
// {
// cout<<"恭喜您考上三本"<600)
// {
// cout << "恭喜您考上一本" << endl;
// if (score > 700)
// {
// cout << "恭喜您考入被打" << endl;
// }
// else if (score > 650)
// {
// cout << "恭喜您考入清华" << endl;
//
// }
// else(score > 600)
// {
// cout << "恭喜您考入人大" << endl;
// }
// }
// 5、三目运算符(如果表达式1的值为真,执行表达式2,并返回表达式2的结果;)
// int main() {
//
//int a = 10;
//int b = 20;
//int c = 0;
//
//c = a > b ? a : b;
//cout << "c = " << c << endl;
//
C++中三目运算符返回的是变量,可以继续赋值
//
//(a > b ? a : b) = 100;
//
//cout << "a = " << a << endl;
//cout << "b = " << b << endl;
//cout << "c = " << c << endl;
//
//system("pause");
//return 0;
//}
//6、switch语句(int main() {
// 表达式:switch
//{
//
//case 结果1:执行语句; break;
//
// case 结果2:执行语句; break;
//
// ...
//
// default:执行语句; break;
//
//}
//例子:
//int main() {
//
// //请给电影评分
// //10 ~ 9 经典
// // 8 ~ 7 非常好
// // 6 ~ 5 一般
// // 5分以下 烂片
//
// int score = 0;
// cout << "请给电影打分" << endl;
// cin >> score;
//
// switch (score)
// {
// case 10:
// case 9:
// cout << "经典" << endl;
// break;
// case 8:
// cout << "非常好" << endl;
// break;
// case 7:
// case 6:
// cout << "一般" << endl;
// break;
// default:
// cout << "烂片" << endl;
// break;
// }
//
// system("pause");
//
// return 0;
//}
//4.2 循环结构while(循环条件) { 循环语句 }
//只要循环条件的结果为真,就执行循环语句
//int main() {
//
// int num = 0;
// while (num < 10)
// {
// cout << "num = " << num << endl;
// num++;
// }
//
// system("pause");
//
// return 0;
//}
//
//
//do…while循环语句
//**注意:**与while的区别在于do…while会先执行一次循环语句,再判断循环条件
//int main() {
//
// int num = 0;
//
// do
// {
// cout << num << endl;
// num++;
//
// } while (num < 10);
//
//
// system("pause");
//
// return 0;
//}
//
//
//for循环语句
//int main() {
//
// for (int i = 0; i < 10; i++)
// {
// cout << i << endl;
// }
//
// system("pause");
//
// return 0;
//}
//跳转语句
//1、break语句
//int main() {
// //1、在switch 语句中使用break
// cout << "请选择您挑战副本的难度:" << endl;
// cout << "1、普通" << endl;
// cout << "2、中等" << endl;
// cout << "3、困难" << endl;
//
// int num = 0;
//
// cin >> num;
//
// switch (num)
// {
// case 1:
// cout << "您选择的是普通难度" << endl;
// break;
// case 2:
// cout << "您选择的是中等难度" << endl;
// break;
// case 3:
// cout << "您选择的是困难难度" << endl;
// break;
// }
//
// system("pause");
//
// return 0;
//}
//
//
//int main() {
// //2、在循环语句中用break
// for (int i = 0; i < 10; i++)
// {
// if (i == 5)
// {
// break; //跳出循环语句
// }
// cout << i << endl;
// }
//
// system("pause");
//
// return 0;
//}
//
//2、 continue语句
//int main() {
//
// for (int i = 0; i < 100; i++)
// {
// if (i % 2 == 0)
// {
// continue;
// }
// cout << i << endl;
// }
//
// system("pause");
//
// return 0;
//}
//
//
//goto语句(解释:如果标记的名称存在,执行到goto语句时,会跳转到标记的位置)
//
//
//
//数组(所谓数组,就是一个集合,里面存放了相同类型的数据元素)
//eg1:数组中的每个数据元素都是相同的数据类型
//eg2:数组是由连续的内存位置组成的
//1、一维数组:(三种方式)
//数据类型 数组名[数组长度];
//数据类型 数组名[数组长度] = { 值1,值2 ... };
//数据类型 数组名[] = { 值1,值2 ... };
//int main() {
//
// //定义方式1
// //数据类型 数组名[元素个数];
// int score[10];
//
// //利用下标赋值
// score[0] = 100;
// score[1] = 99;
// score[2] = 85;
//
// //利用下标输出
// cout << score[0] << endl;
// cout << score[1] << endl;
// cout << score[2] << endl;
//
//
// //第二种定义方式
// //数据类型 数组名[元素个数] = {值1,值2 ,值3 ...};
// //如果{}内不足10个数据,剩余数据用0补全
// int score2[10] = { 100, 90,80,70,60,50,40,30,20,10 };
//
// //逐个输出
// //cout << score2[0] << endl;
// //cout << score2[1] << endl;
//
// //一个一个输出太麻烦,因此可以利用循环进行输出
// for (int i = 0; i < 10; i++)
// {
// cout << score2[i] << endl;
// }
//
// //定义方式3
// //数据类型 数组名[] = {值1,值2 ,值3 ...};
// int score3[] = { 100,90,80,70,60,50,40,30,20,10 };
//
// for (int i = 0; i < 10; i++)
// {
// cout << score3[i] << endl;
// }
//
// system("pause");
//
// return 0;
//}
//一维数组数组名
//一维数组名称的用途:
//(1)可以统计整个数组在内存中的长度
//(2)可以获取数组在内存中的首地址
//int main() {
//
// //数组名用途
// //1、可以获取整个数组占用内存空间大小
// int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
//
// cout << "整个数组所占内存空间为: " << sizeof(arr) << endl;
// cout << "每个元素所占内存空间为: " << sizeof(arr[0]) << endl;
// cout << "数组的元素个数为: " << sizeof(arr) / sizeof(arr[0]) << endl;
//
// //2、可以通过数组名获取到数组首地址
// cout << "数组首地址为: " << (int)arr << endl;
// cout << "数组中第一个元素地址为: " << (int)&arr[0] << endl;
// cout << "数组中第二个元素地址为: " << (int)&arr[1] << endl;
//
// //arr = 100; 错误,数组名是常量,因此不可以赋值
//
//
// system("pause");
//
// return 0;
//}
//eg:数组名是常量,不可以赋值
//冒泡排序( 最常用的排序算法,对数组内元素进行排序)
//eg1比较相邻的元素。如果第一个比第二个大,就交换他们两个。
//eg2对每一对相邻元素做同样的工作,执行完毕后,找到第一个最大值。
//eg3重复以上的步骤,每次比较次数 - 1,直到不需要比较
//例子:将数组{ 4,2,8,0,5,7,1,3,9 } 进行升序排序
//int main() {
//
// int arr[9] = { 4,2,8,0,5,7,1,3,9 };
//
// for (int i = 0; i < 9 - 1; i++)
// {
// for (int j = 0; j < 9 - 1 - i; j++)
// {
// if (arr[j] > arr[j + 1])
// {
// int temp = arr[j];
// arr[j] = arr[j + 1];
// arr[j + 1] = temp;
// }
// }
// }
//
// for (int i = 0; i < 9; i++)
// {
// cout << arr[i] << endl;
// }
//
// system("pause");
//
// return 0;
//}
//二维数组(二维数组就是在一维数组上,多加一个维度。)
//二维数组定义的四种方式:
//
//1、数据类型 数组名[行数][列数];
//2、数据类型 数组名[行数][列数] = { {数据1,数据2 } ,{数据3,数据4 } };(直观,提高代码的可读性)
//3、数据类型 数组名[行数][列数] = { 数据1,数据2,数据3,数据4 };
//4、数据类型 数组名[][列数] = { 数据1,数据2,数据3,数据4 };
//
//二维数组数组名(二维数组名就是这个数组的首地址)
//int main() {
//
// //二维数组数组名
// int arr[2][3] =
// {
// {1,2,3},
// {4,5,6}
// };
//
// cout << "二维数组大小: " << sizeof(arr) << endl;
// cout << "二维数组一行大小: " << sizeof(arr[0]) << endl;
// cout << "二维数组元素大小: " << sizeof(arr[0][0]) << endl;
//
// cout << "二维数组行数: " << sizeof(arr) / sizeof(arr[0]) << endl;
// cout << "二维数组列数: " << sizeof(arr[0]) / sizeof(arr[0][0]) << endl;
//
// //地址
// cout << "二维数组首地址:" << arr << endl;
// cout << "二维数组第一行地址:" << arr[0] << endl;
// cout << "二维数组第二行地址:" << arr[1] << endl;
//
// cout << "二维数组第一个元素地址:" << &arr[0][0] << endl;
// cout << "二维数组第二个元素地址:" << &arr[0][1] << endl;
//
// system("pause");
//
// return 0;
//}
//eg:对二维数组名进行sizeof时,可以获取整个二维数组占用的内存空间大小