C++基础入门( 七 )


5.2.3 冒泡排序作用: 最常用的排序算法,对数组内元素进行排序

  1. 比较相邻的元素 。如果第一个比第二个大,就交换他们两个 。
  2. 对每一对相邻元素做同样的工作,执行完毕后,找到第一个最大值 。
  3. 重复以上的步骤,每次比较次数-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;}5.3 二维数组二维数组就是在一维数组上,多加一个维度 。
5.3.1 二维数组定义方式二维数组定义的四种方式:
  1. 数据类型 数组名[ 行数 ][ 列数 ];
  2. 数据类型 数组名[ 行数 ][ 列数 ] = { {数据1,数据2 },{数据3,数据4 } };
  3. 数据类型 数组名[ 行数 ][ 列数 ] = { 数据1,数据2,数据3,数据4};
  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表达式}