跟着黑马视频学的,代码都手敲了一遍
1.一维数组
一维数组定义的三种方式:
1. ` 数据类型 数组名[ 数组长度 ]; `
2. `数据类型 数组名[ 数组长度 ] = { 值1,值2 ...};如果{}内不足长度个数的数据,剩余数据用0补全
3. `数据类型 数组名[ ] = { 值1,值2 ...};`
统计整个数组在内存中的长度:
sizeof(arr) / sizeof(arr[0])
获取数组在内存中的首地址
cout << "数组首地址为: " << (int)arr << endl;
cout << "数组中第一个元素地址为: " << (int)&arr[0] << endl;
练习1:五只小猪称体重
**案例描述:**
在一个数组中记录了五只小猪的体重,如:int arr[5] = {300,350,200,400,250};
找出并打印最重的小猪体重。
#include <iostream>
using namespace std;
int main()
{
int arr[5] = { 300,350,200,400,250 };
int max = 0;
for (int i = 0; i <= 5; i++) {
if (max < arr[i]) {
max = arr[i];
}
}
cout << max << endl;
system("pause");
return 0;
}
**练习案例2:**数组元素逆置
**案例描述:**请声明一个5个元素的数组,并且将元素逆置.
(如原数组元素为:1,3,2,5,4;逆置后输出结果为:4,5,2,3,1);
#include <iostream>
using namespace std;
int main()
{
int arr[5] = { 300,350,200,400,250 };
cout << "元素逆置前:" << " ";
for (int i = 0; i < 5; i++) {
cout << arr[i] << " ";
}
int start = 0;
int end = sizeof(arr) / sizeof(arr[0]) - 1;
while (start < end) {
int temp = arr[start];
arr[start] = arr[end];
arr[end] = temp;
start++;
end--;
}
cout << "元素逆置后:" << " ";
for (int i = 0; i < 5; i++) {
cout << arr[i] << " ";
}
system("pause");
return 0;
}
2.冒泡排序
冒泡排序
**作用:** 最常用的排序算法,对数组内元素进行排序
1. 比较相邻的元素。如果第一个比第二个大,就交换他们两个。
2. 对每一对相邻元素做同样的工作,执行完毕后,找到第一个最大值。
3. 重复以上的步骤,每次比较次数-1,直到不需要比较
#include <iostream>
using namespace std;
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;
}
3 二维数组
二维数组定义的四种方式:推荐第二种
1. ` 数据类型 数组名[ 行数 ][ 列数 ]; `
2. `数据类型 数组名[ 行数 ][ 列数 ] = { {数据1,数据2 } ,{数据3,数据4 } };`
3. `数据类型 数组名[ 行数 ][ 列数 ] = { 数据1,数据2,数据3,数据4};`
4. ` 数据类型 数组名[ ][ 列数 ] = { 数据1,数据2,数据3,数据4};`
int arr2[2][3] =
{
{1,2,3},
{4,5,6}
};
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;
二维数组应用案例**
**考试成绩统计:**
案例描述:有三名同学(张三,李四,王五),在一次考试中的成绩分别如下表,**请分别输出三名同学的总成绩**
| | 语文 | 数学 | 英语 |
| ---- | ---- | ---- | ---- |
| 张三 | 100 | 100 | 100 |
| 李四 | 90 | 50 | 100 |
| 王五 | 60 | 70 | 80 |
#include <iostream>
using namespace std;
int main()
{
int arr[3][3] = {
{100,100,100},
{90,50,100},
{60,70,80},
};
for (int i = 0; i < 3; i++)
{
int sum = 0;
for (int j = 0; j < 3; j++)
{
sum += arr[i][j];
}
cout << sum << endl;
}
system("pause");
return 0;
}