5.2.3 冒泡排序作用: 最常用的排序算法,对数组内元素进行排序
- 比较相邻的元素 。如果第一个比第二个大,就交换他们两个 。
- 对每一对相邻元素做同样的工作,执行完毕后,找到第一个最大值 。
- 重复以上的步骤,每次比较次数-1,直到不需要比较
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;}5.3 二维数组二维数组就是在一维数组上,多加一个维度 。5.3.1 二维数组定义方式二维数组定义的四种方式:
- 数据类型 数组名[ 行数 ][ 列数 ];
- 数据类型 数组名[ 行数 ][ 列数 ] = { {数据1,数据2 },{数据3,数据4 } };
- 数据类型 数组名[ 行数 ][ 列数 ] = { 数据1,数据2,数据3,数据4};
- 数据类型 数组名[ ][ 列数 ] = { 数据1,数据2,数据3,数据4};
建议:以上4种定义方式,利用==第二种更加直观,提高代码的可读性==示例:
int main() { //方式1//数组类型 数组名 [行数][列数] int arr[2][3]; arr[0][0] = 1; arr[0][1] = 2; arr[0][2] = 3; arr[1][0] = 4; arr[1][1] = 5; arr[1][2] = 6; for (int i = 0; i < 2; i++) {for (int j = 0; j < 3; j++){cout << arr[i][j] << " ";}cout << endl; } //方式2//数据类型 数组名[行数][列数] = { {数据1,数据2 },{数据3,数据4 } }; int arr2[2][3] = {{1,2,3},{4,5,6} }; //方式3 //数据类型 数组名[行数][列数] = { 数据1,数据2 ,数据3,数据4}; int arr3[2][3] = { 1,2,3,4,5,6 };//方式4//数据类型 数组名[][列数] = { 数据1,数据2 ,数据3,数据4}; int arr4[][3] = { 1,2,3,4,5,6 };system("pause"); return 0;}总结:在定义二维数组时,如果初始化了数据,可以省略行数5.3.2 二维数组数组名
- 查看二维数组所占内存空间
- 获取二维数组首地址
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;}总结1:二维数组名就是这个数组的首地址
总结2:对二维数组名进行sizeof时,可以获取整个二维数组占用的内存空间大小5.3.3 二维数组应用案例考试成绩统计:
案例描述:有三名同学(张三,李四,王五),在一次考试中的成绩分别如下表,请分别输出三名同学的总成绩
语文数学英语张三100100100李四9050100王五607080
【C++基础入门】参考答案:
int main() { int scores[3][3] = {{100,100,100},{90,50,100},{60,70,80}, }; string names[3] = { "张三","李四","王五" }; for (int i = 0; i < 3; i++) {int sum = 0;for (int j = 0; j < 3; j++){sum += scores[i][j];}cout << names[i] << "同学总成绩为: " << sum << endl; } system("pause"); return 0;}6 函数6.1 概述作用:将一段经常使用的代码封装起来,减少重复代码一个较大的程序,一般分为若干个程序块,每个模块实现特定的功能 。
6.2 函数的定义函数的定义一般主要有5个步骤:
1、返回值类型
2、函数名
3、参数表列
4、函数体语句
5、return 表达式
语法:
返回值类型 函数名 (参数列表){函数体语句return表达式}- 返回值类型 :一个函数可以返回一个值 。在函数定义中
- 函数名:给函数起个名称
推荐阅读
- 网络工程师快速入门---网络架构及传输介质详解
- 关于WiFi必须了解的基础知识
- 网络编程——协议基础
- 茶艺之美有哪些,安溪茶艺基础知识介绍
- 怎么开网店新手入门 自己如何开网店详细步骤
- grpc的入门使用
- Python基础到高级,完整全套视频分享解析,学编程方法很重要
- 茶树栽培的基础知识,南糯山800年栽培型的茶树王
- 使用Clover安装macOS入门指南
- C++命名空间namespace的理解
