C++_day02
循环结构while语句
num1 = rand() % 100; //生产一百以内的随机数(伪随机)
真随机
添加随机数种子 利用当前系统时间生产随机数,防止每次随机数都一样
#include<ctime> srand((unsigned int)time(NULL));
do...while循环
会先执行一次
for循环
for(其实表达式;条件表达式;末尾循环体) {循环语句;}
嵌套循环:在循环体再嵌套一层循环
#include <iostream> #include <cstdlib> #include<string> #include<ctime> using namespace std; int main() { cout << "随机数小游戏" << endl; int num1; srand((unsigned int)time(NULL)); num1 = rand() % 100; //添加随机数种子 利用当前系统时间生产随机数,防止每次随机数都一样 int num2;; cout << "请输入猜想的数字:"; while (1) { cin >> num2; if (num2>num1) { cout << "您猜的数字过大"<<endl; } else if (num2<num1) { cout << "您猜的数字过小"<<endl; } if (num1==num2) { cout << "您猜对了"; break; } cout << "请从新猜数字:"; } }
break 结束循环 跳出选择语句
出现在switch条件语句中,作用是终止case并跳出switch
出现循环语句中,作用是跳出当前的循环语句
出现在嵌套循环中,跳出最近的内层循环语句
continue语句:结束本次循环进入下一次循环
goto语句:可以无条件跳转语句 //尽量少使用goto
标记的名称存在,执行到goto语句时,会跳转到标记的位置
一般使用纯大写标记例如FLAG
goto FLAG; FLAG: ;(FLAG后面接冒号)
数组: 一个集合,里面存放了相同类型的数据元素
数组中的每个数据元素都是相同的数据类型
数组是由连续的内存位置组成的
数组下标从0开始的
数组定义方法
- 数据类型 数组名[数组长度];
- 数据类型 数组名[数组长度] = {值1,值2,...}; //如果没有填写完后续会用0来填充
- 数据类型 数组名[] = {值1,值2,...};
一维数组组名用途
统计整个数组在内存中的长度---sizeof(arr)
获取数组在内存中的首地址---cout<<(int)arr<<endl;
数组名是一个常量不可以修改
#include <iostream> #include <cstdlib> #include<string> #include<ctime> using namespace std; int main() { int pig[5] = { 300,350,200,400,250 }; int start=0;//起始元素下标位置 int end = sizeof(pig) / sizeof(pig[0]) - 1; //末尾元素下标位置 int temp=0; while (start<end) { temp = pig[start]; pig[start] = pig[end]; pig[end] = temp; start++; end--; } for (int i = 0; i < 5; i++) { cout << pig[i]<<endl; } }
#include <iostream> #include <cstdlib> #include<string> #include<ctime> using namespace std; int main() { //冒泡排序 int arr[10] = { 2, 4, 6, 8, 10, 5, 8, 3, 1, 9 }; int temp = 0; for (int i = 0; i < 10; i++) { for (int j = i;j < 10;j++) { if (arr[j]<arr[i]) { temp = arr[j]; arr[j] = arr[i]; arr[i] = temp; } } } for (int i = 0; i < 10; i++) { cout << arr[i]; } }
二维数组 在一维数组上多加一个维度//通常为行列
二维数组定义方法:
- 数据类型 数组名[行数][列数];
- 数据类型 数组名[行数][列数] = {{数据1,数据2},{数据3,数据4}};
- 数据类型 数组名[行数][列数]={数据1,数据2,数据3,数据4};
- 数据类型 数组名[][列数]={数据1,数据2,数据3,数据4};
int arr1[2][3] =
{
{1,2,3},
{4,5,6}
};
//外层循环打印行数,内层循环打印列数
for (int i = 0; i < 2; i++)
{
for (int j=0;j < 3;j++)
cout << arr[i][j] << endl;
}
二维数组数组名
查看二维数组所占内存空间
获取二维数组首地址
#include <iostream> #include <cstdlib> #include<string> //使用string字符串数组必须包含头文件 #include<ctime> using namespace std; int main() { int arr[3][3] = { {100,100,100}, {90,50,100}, {60,70,80} }; string names[3] = { "张三","李四","王五" }; ///string字符串数组调用 int max = 0; for (int i = 0; i < 3; i++) { max = 0; for (int j = 0;j < 3;j++) max += arr[i][j]; cout << names[i]<<"的总成绩" << max << endl; } }