1.一维数组
1.1数组案例
五个小猪称体重:
#include<iostream>
using namespace std;
void main() {
int arr[] = { 300,350,200,400,250 };
int max_weight = arr[0];
for (int i = 1; i <= 5; i++) {
if (arr[i] > max_weight) {
max_weight = arr[i];
}
}
cout <<"最重的小猪是:"<< max_weight;
}
1.2.数组元素逆置
逆置即为首位互换。
c++中没有直接提供获取数组长度的函数,我们可以首先计算整个数组所占的字节数再除以一个数组元素所占的字节就是数组的长度。即为:int length=sizeof(arr)/(arr[0]).对于数组的下标:
首位数组元素下标为:int start=0;末尾元素下标为:int end=sizeof(arr)/(arr[0])-1
那么我们要想实现数组的逆置只需要将首位数组下标与末尾的数组下面首尾互换即可。当然我们还需要借助一个容器temp来临时存储需要交换的数组元素,防止在交换的过程中被覆盖,
#include<iostream>
using namespace std;
void main() {
int arr[] = { 1,3,2,5,4 };
cout << "数组逆置前的结果"<<endl;
for (int i = 0; i < 5; i++) {
cout << arr[i] << endl;
}
//实现逆置;需要记录起始下标的位置和结束下标位置,然后起始下标与结束下标互换,再起始++,结束--
int start = 0;
int end = sizeof(arr) / sizeof(arr[0]) - 1;
while (start < end) {
int temp = arr[start];
arr[start] = arr[end];
arr[end] = temp;
//下标更新
start++;
end--;
}
cout << "数组逆置后的结果:" << endl;
for (int i = 0; i < sizeof(arr) / sizeof(arr[0]); i++) {
cout << arr[i] << endl;
}
}
1.3.冒泡排序
#include<iostream>
using namespace std;
void main() {
int arr[] = { 4,2,8,0,5,7,1,3,9 };
cout << "排序前:" << endl;
for (int i = 0; i < 9; i++) {
cout << arr[i] << endl;
}
//排序的总轮数=元素个数-1;
//每轮对比数=元素个数-排序轮数-1;
for (int i = 0; i < 9 - 1; i++) {//这是外层循环要排序的轮数
for (int j = 0; j < 9 - i - 1; j++) {//内存循环每轮对比数=元素个数-排序轮数-1;
if (arr[j] > arr[j + 1]) {
int temp = arr[j];
arr[j] = arr[j+1];
arr[j + 1] = temp;
}
}
}
//排序后
cout << "排序后:" << endl;
for (int i = 0; i < 9; i++) {
cout << arr[i] << endl;
}
}
2.二维数组
#include<iostream>
using namespace std;
void main() {
int arr[2][3];
arr[0][0] = 1;
arr[0][1] = 2;
arr[0][2] = 3;
arr[1][0] = 4;
arr[1][1] = 5;
arr[1][2] = 6;
//外层循环打印行数,内存循环打印列数
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 3; j++) {
cout << arr[i][j]<< endl;
}
}
}
考试成绩统计案例:
#include<iostream>
using namespace std;
#include<string>
void main() {
//案例:考试成绩统计
//1.创建数组
int scores[3][3] = {
{100,100,100},
{90,50,100},
{60,70,80}
};
string names[3] = { "张三","李四","王五" };
//2.统计每个热的总和分数
for (int i = 0; i < 3; i++) {
int sum = 0;//统计分数总和变量
for (int j = 0; j < 3; j++) {
sum += scores[i][j];
//cout<< scores[i][j] << " ";
}
cout << names[i] << "的总分为" << sum << endl;
}
}