一维数组
1、定义方式
#include <iostream> using namespace std;int main() {//三种定义方式//1.int arr[5];arr[0] = 10;arr[1] = 20;arr[2] = 30;arr[3] = 40;arr[4] = 50;//访问数据元素/*cout << arr[0] << endl;cout << arr[1] << endl;cout << arr[2] << endl;cout << arr[3] << endl;cout << arr[4] << endl;*///2.int arr2[5] = { 10,20,30,40,50 };/*cout << arr2[0] << endl;cout << arr2[1] << endl;cout << arr2[2] << endl;cout << arr2[3] << endl;cout << arr2[4] << endl;*///利用循环的方式输出数组/*for (int i = 0; i < 5; i++){cout << arr[i] << endl;}*///3.int arr3[] = { 90,80,70,60,50,40,30,20,10 };for (int i = 0; i < 9; i++){cout << arr3[i] << endl;}system("pause");return 0; }
2、数组名
#include <iostream> using namespace std;int main() {//1、通过数组名统计整个数组占用内存大小int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };cout << "整个数组占用内存空间为:" << sizeof(arr) << endl;cout << "每个数组占用内存空间为:" << sizeof(arr[0]) << endl;cout << "数组中元素个数为:" << sizeof(arr) / sizeof(arr[0]) << endl;//2、可以通过数组名查看数组首地址cout << "数组首地址为:" << arr << endl;cout << "数组中第一个元素地址为:" << &arr[0] << endl;system("pause");return 0; }
3、练习案例1: 五只小猪称体重
案例描述:
在一个数组中记录了五只小猪的体重
如: int arr[5] =(300,350,200,400,250):
找出并打印最重的小猪体重。#include <iostream> using namespace std;int main() {int arr[5] = { 300,350,200,400,250 };int max = arr[0];for (int i = 1; i < 5; i++){if (max < arr[i]) {max = arr[i];}}cout << "最重的小猪体重为:" << max << endl;system("pause");return 0; }
4、练习案例2:数组元素逆置
案例描述: 请声明一个5个元素的数组,并且将元素逆置(如原数组元素为: 1,3,2,5,4;逆置后输出结果为:4,5,2,3,1
#include <iostream> using namespace std;int main() {int arr[5] = { 1,3,2,5,4 };for (int i = 0; i < 5; i++){for (int j = 0; j <=i; j++){int t = 0;t = arr[i];arr[i] = arr[j];arr[j] = t;}}for (int i = 0; i < 5; i++){cout << arr[i];}system("pause");return 0; }
5、冒泡排序
作用: 最常用的排序算法,对数组内元素进行排序
1.比较相邻的元素。如果第一个比第二个大,就交换他们两个。2.对每一对相邻元素做同样的工作,执行完毕后,找到第一个最大值
3.重复以上的步骤,每次比较次数-1,直到不需要比较
#include <iostream> using namespace std;int main() {int arr[9] = {4,2,8,0,5,7,1,3,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]<<",";}cout << endl;system("pause");return 0; }
二维数组
1、定义方式
#include <iostream> using namespace std;int main() {//1、int arr[2][3];//2、int arr2[2][3] ={{1,2,3},{4,5,6}};/*for (int i = 0; i < 2; i++){for (int j = 0; j < 3; j++) {cout << arr2[i][j] << " ";}cout << endl;}*///3、int arr3[2][3] = { 1,2,3,4,5,6 };/*for (int i = 0; i < 2; i++){for (int j = 0; j < 3; j++) {cout << arr3[i][j] << " ";}cout << endl;}*///4、int arr4[][3] = { 1,2,3,4,5,6 };for (int i = 0; i < 2; i++){for (int j = 0; j < 3; j++) {cout << arr4[i][j] << " ";}cout << endl;}system("pause");return 0; }
2、数组名
#include <iostream> using namespace std;int main() {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]) << endl;cout << "二维数组列数为:" << sizeof(arr[0]) / sizeof(arr[0][0]) << endl;cout << "二维数组的首地址为:" << arr << endl;cout << "二维数组第一行的首地址为:" << arr[0] << endl;cout << "二维数组第二行的首地址为:" << arr[1] << endl;cout << "二维数组第一给元素的首地址为:" << &arr[0][0] << endl;system("pause");return 0; }
3、 二维数组应用案例
考试成绩统计:
案例描述:有三名同学(张三,李四,王五),在一次考试中的成绩分别如下表,请分别输出三名同学的总成绩语文 数学 英语
张川 100 100 100
李四 90 50 100
王五 60 70 80#include <iostream> using namespace std;int main() {int scores[3][3] = { {100,100,100},{90,50,100},{60,70,80} };for (int i = 0; i < 3; i++){int sum = 0;for (int j = 0; j < 3; j++) {sum += scores[i][j];}cout << "第" << i + 1 << "个人的总分为:" << sum << endl;}system("pause");return 0; }