LogoCSP Wiki By Yundou
简单数据结构

数组

数组的概念

在编程里,我们有时候要存放很多同类型的数据。要是一个一个去创建变量,那就太麻烦了。这时候,数组就能派上用场了,数组就像是一个大箱子,能把很多相同类型的数据整齐地装在里面。

数组的合法定义

在C++里,定义数组得告诉计算机三件事:数组里装的数据是什么类型,数组的名字叫什么,数组能装多少个数据。

图片描述
数组图示

基本语法

数据类型 数组名[数组大小];

合法定义示例

// 定义一个能装5个整数的数组,名字叫numbers
int numbers[5];
// 定义一个能装10个小数的数组,名字叫scores
double scores[10];

数组的非法定义

  • 数组大小必须是一个确定的数字,不能是变量。下面这样定义就是错的:
int n = 5;
// 错误!数组大小不能是变量
int wrongNumbers[n]; 
  • 数组大小不能是负数,下面这样定义也是错的:
// 错误!数组大小不能是负数
int badNumbers[-3]; 

如何使用数组

数组里的每个数据都有一个编号,这个编号从0开始,我们把它叫做“索引”。通过索引,我们就能找到数组里的某个数据,也能给它赋值。

给数组元素赋值

#include <iostream>
using namespace std;
 
int main() {
    // 定义一个能装3个整数的数组
    int ages[3];
 
    // 给数组的第一个元素(索引为0)赋值为10
    ages[0] = 10;
    // 给数组的第二个元素(索引为1)赋值为12
    ages[1] = 12;
    // 给数组的第三个元素(索引为2)赋值为15
    ages[2] = 15;
 
    return 0;
}

访问数组元素

#include <iostream>
using namespace std;
 
int main() {
    // 定义一个能装3个整数的数组,并初始化
    int ages[3] = {10, 12, 15};
 
    // 输出数组的第一个元素(索引为0)
    cout << "第一个人的年龄是: " << ages[0] << endl;
    // 输出数组的第二个元素(索引为1)
    cout << "第二个人的年龄是: " << ages[1] << endl;
    // 输出数组的第三个元素(索引为2)
    cout << "第三个人的年龄是: " << ages[2] << endl;
 
    return 0;
}

例题

例题1:计算数组元素的和

#include <iostream>
using namespace std;
 
int main() {
    // 定义一个能装5个整数的数组,并初始化
    int numbers[5] = {1, 2, 3, 4, 5};
    // 用来存放数组元素的和,初始值为0
    int sum = 0;
 
    // 用循环遍历数组的每个元素
    for (int i = 0; i < 5; i++) {
        // 把当前元素的值加到sum里
        sum = sum + numbers[i];
    }
 
    // 输出数组元素的和
    cout << "数组元素的和是: " << sum << endl;
 
    return 0;
}

例题2:找出数组中的最大值

#include <iostream>
using namespace std;
 
int main() {
    // 定义一个能装4个整数的数组,并初始化
    int scores[4] = {80, 90, 75, 95};
    // 假设数组的第一个元素是最大值
    int maxScore = scores[0];
 
    // 用循环遍历数组的每个元素
    for (int i = 1; i < 4; i++) {
        // 如果当前元素比maxScore大
        if (scores[i] > maxScore) {
            // 就把当前元素的值赋给maxScore
            maxScore = scores[i];
        }
    }
 
    // 输出数组中的最大值
    cout << "数组中的最大值是: " << maxScore << endl;
 
    return 0;
}

例题

On this page