1、数组
实例,五只小猪
int arr[5] = { 200,300,400,350,500 };
int max = 0;
for (int i = 0; i < 5; i++)
{
if (arr[i] > max)
{
max = arr[i];
}
}
cout << "最重小猪重量" << max << endl;
//1.创建数组
int arr[5] = { 1,2,3,4,5 };
cout << "逆置钱数组:" << endl;
for (int i = 0; i < 5; i++)
{
cout << arr[i] << " ";
}
//2、实现逆置
//记录开始下标,记录结束小标,互换
int start = 0;
int end = sizeof(arr) / sizeof(arr[0]) - 1;
//要注意写在外边,不是while内部,否则下面无法判断。
while (start < end)
{
int temp = arr[start];
arr[start] = arr[end];
arr[end] = temp;
start++;
end--;
}
cout << endl;
cout << "逆置后数组:" << endl;
for (int i = 0; i < 5; i++)
{
cout << arr[i] << " ";
}
2、冒泡排序
//1.创建数组
int arr[9] = { 1,8,9,3,2,4,6,5,7 };
cout << "排序前:" << endl;
for (int i = 0; i < 9; i++)
{
cout << arr[i] << " ";
}
cout << endl;
//2、排序
for (int i = 0; i < 9 - 1; i++)
{
for (int j = 0; j < 9 - i - 1; j++)
{
//如果第一数字大于第二,交换二者
if (arr[j] > arr[j + 1])
{
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
//打印排序后的结果
cout << "排序后:" << endl;
for (int i = 0; i < 9; i++)
{
cout << arr[i] << " ";
}
注意事项,变量名要正确,逻辑上从内到外,现行确定内部,如交换
当arr 中j位的数大于j+1就交换二者、
具体实现,为创建一个空值复制j位的数字,然后让j等于j+1(注意逻辑顺序,前者被后者替换)此时j和j+1相等,然后令j+1等于temp,就相当于二者交换了位置
然后持续交换
外循环是次数循环,要比较九次,这里九次可以由sizeeof(arr)/ sizeof(arr[0])-1得出、减一是因为从零开始,
第二层循环是因为每一次循环都要挑出交换一组的,为避免重复运算,减去i,外层循环次数,来缩短计算步骤。
3、二维数组
二维数
-
数据类型 数组名[ 行数 ][ 列数 ] = { {数据1,数据2 } ,{数据3,数据4 } };
-
数据类型 数组名[ 行数 ][ 列数 ] = { 数据1,数据2,数据3,数据4};
组就是在一维数组上,多加一个维度。
最常用的两种
int arr[2][4] =
{
{1,2,3,7},
{4,5,6,8} //两行三列
};
for (int i = 0; i < 2; i++)
{
for (int j = 0; j < 4; j++)
{
cout << arr[i][j] << " ";
}
cout << endl;//打印完一行换行
}
int arr[2][4] = { 1,2,3,7,4,5,6,8 }; //两行三列};
for (int i = 0; i < 2; i++)
{
for (int j = 0; j < 4; j++)
{
cout << arr[i][j] << " ";
}
cout << endl;//打印完一行换行
}
第一种简单明了,第二种快捷便利
二维数组实例
#include#include using namespace std; int main() { //创建二维数组 int scores_chengji[3][3] = //成绩的二维数组 { {100,100,100}, {90,50,100}, {60,70,85} }; string name[3] = { "张三","李四","王五" }; //美观使用的个人姓名数组 for (int i = 0; i < 3; i++) //循环打印每行的数组内容 { cout < 二维数组并不限制多少行多少列,但要先进行优秀的规划,以防错误,其中最常用的是本代码段的方法,简洁明了,易懂。
嵌套for循环打印要明知逻辑顺序与关系,那个在外边,先打印行,那个在里面,先打印列,还有cout的输出,要谨记,清楚顺序。
重点:函数
作用:将一段经常使用的代码封装起来,减少重复代码
一个较大的程序,一般分为若干个程序块,每个模块实现特定的功能。
在我理解中,这一个功能组件,就像一个流水线上的加热仓,经过的数据,都会按照既定目的进行处理,相乘,相加或者别的。这样一个个重复使用的功能仓被单独建立,并独立与主函数main之外,就可以避免主函数中反复操作。
1、返回值类型 int/string/float
2、函数名 中文/english
3、参数表列 (int num1,int num2) 以整型数据为例
4、函数体语句 int sum= num1+ num2 以整型数据为例
5、return 表达式 return sum
实例
#include#include using namespace std; int sum(int num1, int num2) //编写加法函数 返回值类型(int) 函数名(sum) 参数表列 (int num1,int num2) { int sum_jieguo = num1 + num2; //内部函数 return sum_jieguo; //返回值 } int main() { cout << "请输入需要数据1:" << endl; int num_1 = 0; cin >> num_1; //引导输入 cout << "请输入需要数据2:" << endl; int num_2 = 0; cin >> num_2; int sum_jieguo=sum(num_1, num_2); //将数据引用到sum上,并用sum_jieguo体现 cout << "结果为: " << sum_jieguo << endl; system("pause"); return 0; } 值传递——重点
所谓值传递,就是函数调用时实参将数值(原参数)传入给形参(临时),对原参数不会改变,
值传递时,==如果形参发生,并不会影响实参=
#include#include using namespace std; void swap(int num1, int num2) { cout << "交换前:" << endl; cout << "num1 = " << num1 << endl; cout << "num2 = " << num2 << endl; int temp = num1; //创建临时空间接受数据 num1 = num2; num2 = temp; cout << "交换后:" << endl; cout << "num1 = " << num1 << endl; cout << "num2 = " << num2 << endl; cout << endl; //return ; 当函数声明时候,不需要返回值,可以不写return } int main() { int a = 10; int b = 20; swap(a, b); cout << "mian中的 a = " << a << endl; cout << "mian中的 b = " << b << endl; cout << "请对比转换前是否一致? " << endl; system("pause"); return 0; } 虽然值传递看起来没有太大用处,但是其意义重大,这种不改变原值的操作可以运用到很多地方,甚至为了避免改变原值,使用count来锁死原值,例如游戏中的关键数值、
q函数常见样式(详见代码段)
#include#include using namespace std; void test01()//test01是无参无返 { cout << "test01运行成功" << endl; } void test02(int a)//test02是有参无返 { cout << "test02运行成功,其中引用a= "< 请注意无参有返系列,在书写中,需要先书写接受地,否则报错
而有参有返系列,用途较广,可以返回原值,也可以进行数值的操作与处理
在游戏上的用途:
1,无参无返,可以用于执行某些简单的打印操作,如欢迎进入游戏~
2,有参无返,进行运算并处理,但是可以不返回
3、无参有返,触发就执行某些操作,例如道具掉落等
4、有参有返,两种用法,既可以返回原值,并进行反馈,表示已接收数据,并返回,也可以进行数据的处理后再返回。在游戏多种多样的用法。
被父母pua去了,今天学习到此结束



