1 #include <iostream>
2 #include<string>
3 using namespace std;
4 int main()
5 {
6 /*数组:用于存储相同数据元素 定义方式
7 * 数据类型 数组名[数据长度]; 数据长度是指有多少数据
8 数据类型 数组名[数据长度] = {值1,值2, ...};
9 数据类型 数组名[ ] = {值1,值2, ...};
10
11 * 特点:
12 1、放在一块连续的内存空间中,
13 2、元素都是相同的数据类型
14 */
15 int arr[5]; //未赋值时默认为0;
16 int i = 0;
17 arr[0] = 10; // 第一个数据
18 arr[1] = 10;
19 arr[2] = 10;
20 arr[3] = 10;
21 arr[4] = 10;
22 int arr2[5] = { 10,20,30,40,50 }; //初始值没有赋值的默认为0;
23 int arr3[ ] = {10,20,30,40,50};
24 for (i; i < 5; i++)
25 {
26 arr[i] = (i + 1) * 100; //对数组 arr[] 每个元素赋值
27 std::cout << i << "元素为:\t" << arr[i] << "\n";
28 }
29 /*
30 1、可通过 数组名 统计整个数组所占空间长度
31 2、可通过 数组名 查看数组首地址
32
33 数组名是一个常量
34 */
35 std::cout << "数组arr所占空间长度为" << sizeof(arr) << endl;
36 std::cout << "数组arr首地址为" << arr << endl;
37 std::cout << "数组中第一个元素的地址" << &arr[0]<<endl;// & (取地址符)
38 std::cout << "数组中第二个元素的地址" << &arr[1]<<endl;
39 //案例,五只小猪称体重,选出最重的,并且打印输出
40
41
42
43 //调出最大的数
44 int arr5[5] = { 300,350,200,400,250 }; //五只小猪的重量
45 int max = 0; //最终的质量
46 for (i = 0; i < 5; i++)
47 {
48 // std::cout << arr5[i] << endl;
49 if (arr5[i] > max) //用每一只小猪与最大质量依次比较
50 {
51 max = arr5[i]; //将质量大的赋值给最终质量
52 }
53 }
54 // std::cout << "五只小猪最重的重量为" << arr5{i} << endl;
55 //这里表示输出该元素的地址
56 std::cout << "五只小猪最重的重量为" << max << endl;//输出max最大质量
57
58
59
60 //元素逆置
61 int arr6[5] = { 1,3,2,5,4 };
62 std::cout << "逆置之前的数组" << endl;
63 for (i = 0; i < 5; i++)
64 {
65 std::cout << arr6[i] << endl; //打印逆置之前的数组
66 }
67 std::cout << sizeof(arr6)<<endl; //计算数组 arr6 所占内存总长度
68 std::cout << sizeof(arr6[0])<<endl; //计算数组 arr6 单个元素所占内存长度
69 int end = sizeof(arr6) / sizeof(arr6[0]) - 1;//计算数组 arr6 所拥有元素的个数
70 i = 0; //初始化 i 的值
71 while (i < end) //条件为真则一直运行
72 {
73 /* int a = 0;
74 int b = 0;
75 a = arr6[i];
76 b = arr6[end];
77 arr6[i] = b;
78 arr6[end] = a; //循环语句是将 元素逆置
79 */
80
81 // 另一种简洁一些的
82 int a = 0;
83 int b = 0;
84 a = arr6[i];
85 arr6[i] = arr6[end];
86 arr6[end] = a; //循环语句是将 元素逆置
87
88 i++;
89 end--;
90 }
91 std::cout << "逆置之后的数组" << endl;
92 for (i = 0; i < 5; i++)
93 {
94 std::cout << arr6[i] << endl; //打印输出逆置之后的数组
95 }
96
97
98
99
100 //排序算法
101 //顺序(由小到大) 想要逆序只需将判断处的符号改变为小于
102 int acc[] = { 4,5,2,9,6,8,0,7,1,3,9 };
103 int f = 0;
104 f = sizeof(acc) / sizeof(acc[0]) - 1; //计算数组元素个数
105 for (int a = 0; a < f; a++) //保证每一次比较都是从第一个数开始
106 {
107 for (int b = 0; b < (f-a); b++) //每次循环可以选出一个最大的数放在最后,每循环一次就少比较一次
108 {
109 if (acc[b] > acc[(b + 1)]) //判断相邻两位数大小
110 {
111 int c = 0;
112 c = acc[b];
113 acc[b] = acc[(b + 1)];
114 acc[(b + 1)] = c; //如果前面大于后面则调换位置,否则下一循环
115
116 }
117 }
118 }
119 std::cout << "由小到大为:" << endl;
120 for (int i = 0; i < f; i++)
121 {
122 std::cout << acc[i] << endl;
123 }
124
125
126
127 system("pause");
128 }