Menu
CoddyTech

指针与动态数组

本课属于 Coddy C++ 学习旅程的“逻辑与流程”单元。第 56 课,共 56 课。

challenge icon

挑战

简单

编写一个程序,通过构建灵活的数字存储和处理系统来演示动态内存管理。本挑战将测试你对动态数组、内存分配、数组操作和正确释放内存的理解。

将提供以下输入:

  • 一个整数 size,表示要存储的整数个数
  • 接着是 size 个整数,表示要存储在动态数组中的数字

你的程序应该:

  1. 从输入中读取大小
  2. 使用 new[] 和指定的大小,动态分配一个整数数组
  3. 从输入中读取整数,并将它们存储在动态分配的数组中
  4. 计算数组中所有数字的总和
  5. 找出数组中的最大值
  6. 按照指定格式打印结果
  7. 使用 delete[] 正确释放内存

使用以下确切的输出格式:

Array size: [size]
Sum: [sum_of_all_numbers]
Maximum: [maximum_value]

请记住,动态内存分配可以让你创建大小在运行时根据用户输入确定的数组。使用 new int[size] 分配数组,并使用数组表示法 array[index] 访问元素。使用完数组后,必须调用 delete[] array 释放已分配的内存,防止内存泄漏。数组存储在堆上,会一直存在,直到你明确释放它。

亲手试试

#include <iostream>
using namespace std;

int main() {
    // 读取数组的大小
    int size;
    cin >> size;
    
    // TODO: 在这里编写你的代码
    // 1. 使用 new[] 动态分配数组
    // 2. 读取整数并存入数组
    // 3. 计算所有数字的总和
    // 4. 找出最大值
    // 5. 别忘了使用 delete[] 释放内存
    
    // 输出结果(替换为实际的变量)
    cout << "Array size: " << size << endl;
    cout << "Sum: " << /* 总和变量 */ << endl;
    cout << "Maximum: " << /* 最大值变量 */ << endl;
    
    return 0;
}

逻辑与流程中的所有课

自己练习: C++ 在线编译器