数组放在连续的内存空间中
元素为同一数据类型
int arr[5];
arr[0] = 10;
arr[1] = 0;
arr[2] = 20;
arr[3] = 30;
arr[4] = 40;
cout << arr[4] << endl;
//第二种命名方式
int arr2[5] = { 1,2,3,4,5 };
cout << arr2[3] << endl;
//第三种命名方式
for (int a = 0; a < 5; a++)
{
cout << arr2[a] << endl;
}//定义数组时必须有初始长度
一维数组名的用途
1.可以统计整个数组在内存中的长度 sizeof(arr)
2.可以获取数组在内存中的首地址
int arr[5] = { 1,2,3,4,5 };
cout << arr << endl;//查看首地址
cout << &arr[2] << endl;//元素地址
cout <<(int)arr<< endl;//强制转换首地址
//注:数组名是一个常量
//arr=100;不可以被赋值
cout << "数组所占内存空间长度为: " << sizeof(arr) << endl;
cout << "每个元素所占空间为:\t" << sizeof(arr[0]) << endl;
cout << "数组中元素个数为:\t" << sizeof(arr) / sizeof(arr[0]) << endl;
冒泡排序
int arr[5] = { 300,200,400,100,230 };
int max = 0;
for (int i = 0; i < 5; i++)
{
if (arr[i] >max)
{
max = arr[i];
}
}
cout <<"最大数为:"<<max << endl;
数组元素逆置
int arr[5] = { 1,3,2,5,4 };
int start = 0;//起始元素下标
int end = sizeof(arr) / sizeof(arr[0]) - 1;
cout << "输出逆置前"<< endl;
for (int i = 0; i < 5; i++)
{
cout << arr[i]<<endl ;
}
cout << "输出逆置后" << endl;
while (start < end)
{
int temp = arr[start];
arr[start] = arr[end];
arr[end] = temp;
start++;
end--;
}
for (int i = 0; i < 5; i++)
{
cout << arr[i] << endl;
}
冒泡排序
后面的比前面的小则交换,一直执行到所有后面的都比前面的大
本质就是一遍一遍重复然后使得从左往右于此增大
int arr[9] = { 4,2,8,7,6,3,1,5,9 };
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;
}
}
}
for (int i=0; i < 9; i++)
{
cout << arr[i] ;
}
二维数组
数据类型arr[][]
外层打印行数内层打印列数
int arr[2][2];
arr[0][0] = 1;
arr[0][1] = 2;
arr[1][0] = 3;
arr[1][1] = 4;
arr[2][0] = 5;
arr[2][1] = 6;
arr[2][2] = 7;
for (int i = 0; i < 2; i++)
{
for (int j = 0; j < 3; j++)
{
cout << arr[i][j] << " ";
}
cout << endl;
}
二维数组第二种定义方式
int aaa[2][3] =
{
{1,2,3},
{4,5,6}
};//第二种定义方式
for (int i = 0; i < 2; i++)
{
for (int j = 0; j <3; j++)
{
cout << aaa[i][j] << " ";
}
cout << endl;
}
二维数组成绩统计
让每行三列总和,然后输出
int arr[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 += arr[i][j];
cout << arr[i][j]<<" ";
}
cout <<" "<<names[i]<<"的总分为"<<sum << endl;
}