本帖最后由 小白学编程 于 2021-4-5 16:39 编辑
一维数组 静态 和动态
定义并初始化了数组array
int array[7] = {300,450,600,550,900,1050,4000}; //打印出数组元素的最大值 [6] 有几个填几个元素
先定义一个最大值
int max=0;
先打印出==={300,450,600,550,900,1050,4000}
for (int i = 0; i < 7; i++) //注意这里i<7要和array[7]一样
{
cout << array << endl; //注意要 array 加上【i】,否则打印的是内存空间地址,并以16进制显示
// cout << (int)array << endl; 16进制转换10进制输出
}
1.1代码
int array[7] = {300,450,600,550,900,1050,4000};
int max = 0;
for (int i = 0; i < 7; i++)
{
//cout << array << endl;
if (array > max)
{
max = array;
}
}
cout << "数组中的元素最大值为 " << max << endl; 输出为4000;
1.2数组元素逆置
int array[13] = { 1,3,2,5,4,8,9,15,13,7,10,12,14};
cout << "数组元素逆置前 " << endl;
for (int i=0;i<13;i++)
{
cout << array<<" ";
}
cout << endl;
1.3//2.实现逆置 记录起始下标位置 记录结束下标位置 起始下标和结束下标的位置互换 起始下标++,结束下标--
循环执行操作,直到起始位置>=结束位置
int start = 0;
int end = sizeof(array) / sizeof(array[0])-1;
while (start < end)
{
int temp = array[start];
array[start] = array[end];
array[end] = temp;
//下标更新
start++;
end--;
}
cout << "数组元素逆置后" << endl;
for (int i = 0; i < 13; i++)
{
cout << array << " ";
}
cout << endl;
数组元素逆置前
1 3 2 5 4 8 9 15 13 7 10 12 14
数组元素逆置后的效果
14 12 10 7 13 15 9 8 4 5 2 3 1
1.3冒泡排序
int array[15] = { 4,2,8,0,5,7,1,3,9,10,13,14,6,12,11};
cout << "排序前" << endl;
for (int i = 0; i < 15; i++)
{
cout << array << " "; //这里以空格隔开
}
cout << endl;
先打印出 4,2,8,0,5,7,1,3,9,10,13,14,6,12,11
for (int i = 0; i < 15-1; i++)
{
for (int j = 0; j < 15 - i - 1; j++)
{
if (array[j]>array[j+1])
{
int temp = array[j];
array[j] = array[j + 1];
array[j + 1] = temp;
}
}
}
cout << "排序后" << endl;
for (int i = 0; i < 15; i++)
{
cout << array << " ";
}
cout << endl;
输出结果
排序前
4 2 8 0 5 7 1 3 9 10 13 14 6 12 11
排序后
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
===================================================================================
二维数组 第一种方式 访问数组索引下标0开始
int array[2][3];
array[0][0] = 1;
array[0][1] = 2;
array[0][2] = 3;
array[1][0] = 4;
array[1][1] = 5;
array[1][2] = 6;
cout << array[0][0] << endl;
cout << array[0][1] << endl;
cout << array[0][2] << endl;
cout << array[1][0] << endl;
cout << array[1][1] << endl;
cout << array[1][2] << endl;
这里如果出现10行10列岂不是需要写100行,不推荐使用
二维数组 第二种方式 数据类型 数组名【行数】【列数】={{数据1,数据2,},{数据3}{数据4}}
这种可读性高,便于阅读
int array1[2][3]=
{
{1,2,3},
{4,5,6}
};
for (int i = 0; i < 2; i++)
{
for (int j = 0; j < 3; j++)
{
cout << array1[j] << endl;
}
}
二维数组 第三种方式
数据类型,数组名【行数】【列数】={数据1,数据2,数据3,数据4,数据5,数据6}
int array2[2][3] = { 1,2,3,4,5,6 };
for (int i = 0; i < 2; i++)
{
for (int j = 0; j < 3; j++)
{
cout << array[j] << endl;
}
}
二维数组 第四种方式 数据类型,数组名【】【列数】={数据1,数据2,数据3,数据4,数据5,数据6}
int array3[][3] = { 1,2,3,4,5,6 }; // array3[][3] 括号里行数没写
for (int i = 0; i < 2; i++)
{
for (int j = 0; j < 3; j++)
{
cout << array3[j] << endl;
}
}
for (int i = 0; i < 2; i++)
{
for (int j = 0; j < 3; j++)
{
cout << array3[j] << endl;
}
}
总结 :1一维数组里面的冒泡排序和元素逆置值得学习
|