【c++】如何让变量超限时自动调整,防止数组越界

#include <iostream>
#include <limits> // 为了使用std::numeric_limits

using std::cout;
using std::cin;
using std::endl;

// 智能调整数据(上限)
int SmartChangeMax(int x, int y) {
    if (x > y) {
        x = y;
    }
    return x;
}

// 智能调整数据(下限)
int SmartChangeMin(int x, int y) {
    if (x < y) {
        x = y;
    }
    return x;
}

// main函数,程序的入口
int main() {
    int userinput = 0;
    int arr[3] = {1, 2, 3};

    // 读取用户输入,并检查是否有效(例如,非负)
    cout << "请输入一个非负整数来指定要打印的数组元素数量(最多3个): ";
    if (!(cin >> userinput) || userinput < 0) {
        cout << "无效的输入!请输入一个非负整数。" << endl;
        return 1; // 返回非零值表示错误
    }

    // 使用SmartChangeMax确保不越界
    for (int i = 0; i < SmartChangeMax(userinput, (int)sizeof(arr) / sizeof(arr[0])); i++) {
        cout << "arr[" << i << &#

相关推荐

  1. C语言】数组越界

    2024-07-19 00:18:01       31 阅读
  2. C++访问越界

    2024-07-19 00:18:01       26 阅读
  3. 如何手动实现批量添加和解除

    2024-07-19 00:18:01       34 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-19 00:18:01       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-19 00:18:01       71 阅读
  3. 在Django里面运行非项目文件

    2024-07-19 00:18:01       58 阅读
  4. Python语言-面向对象

    2024-07-19 00:18:01       69 阅读

热门阅读

  1. c语言(7.17)

    2024-07-19 00:18:01       25 阅读
  2. UFS协议

    2024-07-19 00:18:01       22 阅读
  3. 透过三星Galaxy Z Fold6,看见高效生活的未来图景

    2024-07-19 00:18:01       20 阅读
  4. 设计模式之观察者模式

    2024-07-19 00:18:01       20 阅读
  5. 微服务拆分流程 (黑马商城拆分商品服务)

    2024-07-19 00:18:01       19 阅读
  6. C# 邮件发送

    2024-07-19 00:18:01       23 阅读
  7. Repl.it: 在线的集成开发环境

    2024-07-19 00:18:01       25 阅读
  8. js基础知识

    2024-07-19 00:18:01       26 阅读
  9. vivado H_SET and HU_SET

    2024-07-19 00:18:01       21 阅读
  10. xhdra的使用记录

    2024-07-19 00:18:01       20 阅读
  11. Docker无网环境下配置方法

    2024-07-19 00:18:01       19 阅读