当前位置:   article > 正文

C++数组(定义、遍历、长度、地址、最大值、逆置、冒泡排序)_c++遍历数组的长度

c++遍历数组的长度

一、一维数组

1、数组定义、遍历

  1. #include <iostream>
  2. using namespace std;
  3. int main() {
  4. // 数组的三种定义
  5. int arr1[10];
  6. int arr2[5] = {1, 2, 3};
  7. int arr3[] = {11, 22, 33};
  8. arr1[0] = 10;
  9. // 遍历输出 数组所占的空间sizeof(arr1) 第一个元素所占的空间sizeof(arr1[0]) 数组元素的个数sizeof(arr1)/ sizeof(arr1[0])
  10. for (int i = 0; i < sizeof(arr1)/ sizeof(arr1[0]); ++i) {
  11. cout << arr1[i] << " ";
  12. }
  13. cout << endl;
  14. for (int i = 0; i < sizeof(arr2)/ sizeof(arr2[0]); ++i) {
  15. cout << arr2[i] << " ";
  16. }
  17. cout << endl;
  18. for (int i = 0; i <sizeof(arr3)/ sizeof(arr3[0]); ++i) {
  19. cout << arr3[i] << " ";
  20. }
  21. cout << endl;
  22. cout<<arr3[5]<<endl;
  23. return 0;
  24. }
  1. 10 0 0 0 8 0 4199705 0 8 0
  2. 1 2 3 0 0
  3. 11 22 33
  4. 3

2、 数组长度、地址

  1. #include <iostream>
  2. using namespace std;
  3. int main() {
  4. int arr[3]={1,2,3};
  5. cout<<"整个数组占用的内存空间:"<<sizeof(arr)<<endl;
  6. cout<<"每个元素占用的内存空间:"<<sizeof(arr[0])<<endl;
  7. cout<<"数组中元素的个数:"<<sizeof(arr)/sizeof(arr[0])<<endl;
  8. cout<<"数组的地址:"<<arr<<endl;
  9. cout<<"数组第一个元素的地址:"<<&arr[0]<<endl;
  10. cout<<"数组第二个元素的地址:"<<&arr[1]<<endl;
  11. cout<<"数组第三个元素的地址:"<<&arr[2]<<endl;
  12. return 0;
  13. }
  1. 整个数组占用的内存空间:12
  2. 每个元素占用的内存空间:4
  3. 数组中元素的个数:3
  4. 数组的地址:0x62fe14
  5. 数组第一个元素的地址:0x62fe14
  6. 数组第二个元素的地址:0x62fe18
  7. 数组第三个元素的地址:0x62fe1c

 3、找出数组最大值

  1. #include <iostream>
  2. using namespace std;
  3. int main() {
  4. //找出数组最大的值
  5. int arr[] = {-9, 69, 9, 4, 32};
  6. // 计算数组的长度
  7. int length = sizeof(arr) / sizeof(arr[0]);
  8. int max=0;
  9. for (int i = 0; i < length; ++i){
  10. if(arr[i]>max){
  11. max=arr[i];
  12. }
  13. }
  14. cout<<"数组中最大的值为:"<<max<<endl;
  15. return 0;
  16. }
数组中最大的值为:69

4、逆置

  1. #include <iostream>
  2. using namespace std;
  3. int main() {
  4. //找出数组逆置
  5. int arr[] = {-9, 69, 9, 4, 32, 56};
  6. // 计算数组的长度
  7. int length = sizeof(arr) / sizeof(arr[0]);
  8. cout << "原数组:" << endl;
  9. for (int i = 0; i < length; ++i) {
  10. cout << arr[i] << " ";
  11. }
  12. cout << endl;
  13. // 逆置 start开始坐标 end结束坐标
  14. int start = 0;
  15. int end = length - 1;
  16. while (start < end) {
  17. int tem = arr[start];
  18. arr[start] = arr[end];
  19. arr[end] = tem;
  20. start++;
  21. end--;
  22. }
  23. cout << "逆置后数组:" << endl;
  24. for (int i = 0; i < length; ++i) {
  25. cout << arr[i] << " ";
  26. }
  27. cout << endl;
  28. return 0;
  29. }
  1. 原数组:
  2. -9 69 9 4 32 56
  3. 逆置后数组:
  4. 56 32 4 9 69 -9

5、冒泡排序

  1. #include <iostream>
  2. using namespace std;
  3. int main() {
  4. //冒泡排序 升序
  5. int arr[11] = {4, 2, 8, 0, 5, 7, 1, 3, 9, 56, 78};
  6. // 计算数组的长度
  7. int length = sizeof(arr) / sizeof(arr[0]);
  8. cout << "原数组:" << endl;
  9. for (int i = 0; i < length; ++i) {
  10. cout << arr[i] << " ";
  11. }
  12. cout << endl;
  13. // 排序
  14. for (int i = 0; i < length - 1; ++i) {
  15. for (int j = i + 1; j < length; ++j) {
  16. if (arr[j] > arr[i]) {
  17. int tem = arr[i];
  18. arr[i] = arr[j];
  19. arr[j] = tem;
  20. }
  21. }
  22. }
  23. cout << "排序后:" << endl;
  24. for (int i = 0; i < length; ++i) {
  25. cout << arr[i] << " ";
  26. }
  27. cout << endl;
  28. return 0;
  29. }

  1. 原数组:
  2. 4 2 8 0 5 7 1 3 9 56 78
  3. 排序后:
  4. 78 56 9 8 7 5 4 3 2 1 0

 二、二维数组

1、定义

  1. #include <iostream>
  2. using namespace std;
  3. int main() {
  4. //二维数组
  5. //定义一
  6. int arr1[2][3];
  7. arr1[0][0]=0;
  8. arr1[0][1]=2;
  9. arr1[0][2]=3;
  10. arr1[1][0]=4;
  11. // 定义二
  12. int arr2[2][3] = {{1, 2, 3},
  13. {4, 5, 6}};
  14. // 定义三
  15. int arr3[2][3] = {1, 2, 3, 4, 5, 6};
  16. // 定义四
  17. int arr4[][3] = {1, 2, 3, 4, 5, 6,7,8,9};
  18. // 二维数组的行数与列数
  19. cout<<"二维数组占用的内存空间:"<<sizeof(arr3)<<endl;
  20. cout<<"二维数组第一行占用的内存空间:"<<sizeof(arr3[0])<<endl;
  21. cout<<"二维数组第一个元素占用的内存空间:"<<sizeof(arr3[0][0])<<endl;
  22. cout<<"二维数组行数:"<<sizeof(arr3)/sizeof(arr3[0])<<endl;
  23. cout<<"二维数组列数:"<<sizeof(arr3[0])/sizeof(arr3[0][0])<<endl;
  24. cout<<"二维数组的地址:"<<arr3<<endl;
  25. cout<<"数组第一行的地址:"<<&arr3[0]<<endl;
  26. cout<<"数组第一个元素的地址:"<<&arr3[0][0]<<endl;
  27. cout<<"数组第二行的地址:"<<&arr3[1]<<endl;
  28. cout<<"数组第二行的地址:"<<&arr3[1][0]<<endl;
  29. return 0;
  30. }

 

 

  1. 二维数组占用的内存空间:24
  2. 二维数组第一行占用的内存空间:12
  3. 二维数组第一个元素占用的内存空间:4
  4. 二维数组行数:2
  5. 二维数组列数:3
  6. 二维数组的地址:0x62fdc0
  7. 数组第一行的地址:0x62fdc0
  8. 数组第一个元素的地址:0x62fdc0
  9. 数组第二行的地址:0x62fdcc
  10. 数组第二行的地址:0x62fdcc

 2、应用

  1. #include <iostream>
  2. using namespace std;
  3. int main() {
  4. //二维数组的应用
  5. int arr[3][4] = {{100, 100, 100},
  6. {90, 50, 100},
  7. {60, 70, 80}};
  8. // 数组的行数
  9. //行
  10. int rows = sizeof(arr) / sizeof(arr[0]);
  11. //列
  12. int columns = sizeof(arr[0]) / sizeof(arr[0][0]);
  13. for (int i = 0; i < rows; ++i) {
  14. int max = 0;
  15. for (int j = 0; j < columns; ++j) {
  16. max += arr[i][j];
  17. }
  18. cout << "计算第" << i + 1 << "行的和:" << max << endl;
  19. }
  20. return 0;
  21. }
  1. 计算第1行的和:300
  2. 计算第2行的和:240
  3. 计算第3行的和:210

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/399027
推荐阅读
相关标签
  

闽ICP备14008679号