05 数组
本次记录数组,还请各位大佬批评指正!
一维数组
1、与变量命名规范一致,不要与变量重名;
2、下标从0开始索引。
int num[5];
num[0] = 10;
num[1] = 10;
num[2] = 10;
num[3] = 10;
num[4] = 10;
for (int a = 0; a < 5; a++)
{
cout << num[a] << endl;
}
int num2[5] = { 1,2,3,4,5 };
for (int a = 0; a < 5; a++)
{
cout << num2[a] << endl;
}
int num3[] = { 6,6,6 };
for (int a = 0; a < 3; a++)
{
cout << num[a] << endl;
}
//数组的长度和内存的首地址
int arr[5] = { 1,2,3,4,5 };
cout << sizeof(arr) << endl;
cout << sizeof(arr[0]) << endl;
cout << sizeof(arr)/ sizeof(int) << endl;
cout << (int)arr << endl;
cout << (int)&arr[0] << endl;
//数组元素逆序
int arr[4] = { 1,2,3,4 };
int arr1[4];
for (int a = 0; a < 4; a++)
{
arr1[3 - a] = arr[a];
}
for (int a = 0; a < 4; a++)
{
cout << arr1[a] << endl;;
}
int arr[9] = { 1,2,3,4,5,6,7,8,9 };
cout << "数组逆制前:" << endl;
for (int a = 0; a < 9; a++)
{
cout << arr[a] << endl;
}
int s=0 ;
int e = sizeof(arr) / sizeof(int) - 1;
for (int a = 0; a < 9; a++)
{
if (s < e)
{
int temp = arr[s];
arr[s] = arr[e];
arr[e] = temp;
}
s++;
e--;
}
cout << "数组逆制后:" << endl;
for (int a = 0; a < 9; a++)
{
cout << arr[a] << endl;
}
冒泡排序
int arr[10] = { 10,9,8,7,6,5,4,3,2,1 };
int s = sizeof(arr) / sizeof(int); //元素个数
cout << "排序前:" << endl;
for (int a = 0; a < s; a++)
{
cout << arr[a] << endl;
}
//开始冒泡排序
//排序总轮数=s-1 每轮对比次数=s-排序轮数-1
int temp = 0;
for (int a = 0; a < s-1; a++)
{
for (int b = 0; b < s - a - 1; b++)
{
if (arr[b] >= arr[b + 1])
{
temp = arr[b];
arr[b] = arr[b + 1];
arr[b + 1] = temp;
}
}
}
cout << "排序后:" << endl;
for (int a = 0; a < s; a++)
{
cout << arr[a] << endl;
}
二维数组
int arr[2][6] =
{
{1, 2, 3, 4, 5, 6},
{2, 3, 4, 5, 6, 7}
};
for (int a = 0; a < 2; a++)
{
for (int b = 0; b < 6; b++)
{
cout << arr[a][b]<<" " ;
}
cout << endl;
}
//二维数组名称用途 查看占用内存空间大小二维数组首地址
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])<<"行" << sizeof(arr[0])/ sizeof(arr[0][0]) <<"列的数组"<< endl;
cout << "二维数组首地址" << (int)arr << endl;
cout << "二维数组第一个元素首地址" << (int)&arr[0][0] << endl;
//案例 考试成绩的统计
int arr[3][3] =
{
{100, 100, 100},
{90, 50, 100},
{60, 70, 80}
};
string name[3] = { "张三","李四","王五" }; //这里要包含头文件#include<string>
for (int i = 0; i < 3; i++)
{
int sum = 0;
for (int j = 0; j < 3; j++)
{
sum = sum + arr[i][j];
}
cout << name[i] <<"的总分为:"<< sum << endl;
}