InfoCode

C++ · 数组

数组遍历:求和、计数与求最值

通过 C++ 数组求和、计数和求最大值的例子,学习遍历顺序、累加器初始化以及每个元素恰好处理一次的方法。

InfoCode 编写 · 技术参考见下文

在应用中练这个知识点 在应用中阅读讲解

遍历顺序与初值选择

数组是一排编了号的"格子",遍历就是从第一个格子走到最后一个格子,每个都看一遍。

最常见的写法是用 for 循环,让下标从 0 增加到 n-1(共 n 个元素):

int a[5] = {3, 1, 4, 1, 5};
for (int i = 0; i < 5; i++) {
    cout << a[i] << " ";
}

遍历时常见的任务:
• 求所有元素的和:用变量 sum 累加
• 找最大值/最小值:先假设第 0 个是最大/小,再逐个比较
• 统计满足条件的个数:遇到符合条件的就让计数器加 1

C++11 以后还可以用范围 for 循环:for (int x : a) 读取元素副本;若要修改原数组,可写 for (int &x : a)。

求和、最大值与条件计数

例1:遍历求和与最大值

#include <iostream>
using namespace std;
int main() {
    int a[5] = {3, 1, 4, 1, 5};
    int sum = 0, maxVal = a[0];
    for (int i = 0; i < 5; i++) {
        sum += a[i];
        if (a[i] > maxVal) maxVal = a[i];
    }
    cout << "sum=" << sum << endl;    // 14
    cout << "max=" << maxVal << endl; // 5
    return 0;
}

遍历一次完成求和(14)和找最大值(5)两个任务。maxVal 初始为 a[0]=3,遍历中不断更新。

例2:统计偶数个数

#include <iostream>
using namespace std;
int main() {
    int a[] = {1, 2, 3, 4, 5, 6};
    int cnt = 0;
    for (int i = 0; i < 6; i++) {
        if (a[i] % 2 == 0) cnt++;
    }
    cout << cnt << endl; // 输出 3
    return 0;
}

遍历 6 个元素,2、4、6 满足偶数条件,cnt 最终为 3。

提示

先修知识

技术参考

范围说明

本站讲解由 InfoCode 编写,不是官方考纲;参考级别是本站映射,不代表官方等级、认证或参赛资格。练习记录不等于掌握或资格。

参考级别:GESP 3 级(本站映射)

查看赛事关系与路径