You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C++整数数组的存储与显示实现及循环代码错误排查求助

你的C++数组代码错误排查与修正

你的代码里循环部分存在多个关键问题,逐一梳理并修正:

核心错误点

  • 循环条件错误:数组大小为i时,有效下标范围是0到i-1,循环应该用j < i而非j <= i,否则会多执行一次循环,导致数组越界访问。
  • 非法修改循环控制变量:输入和输出循环中都对i执行了i++操作,i原本存储的是数组大小,修改后会彻底打乱循环逻辑,导致循环无法正常终止,同时数组下标越界。
  • 数组下标访问错误:输入元素时用marks[i],应该使用当前循环的下标变量marks[j],否则会一直往同一个越界的位置存值。
  • 输出语句缺失内容:输出循环里没有打印数组元素,只输出了固定文本。

修正后的代码

#include <iostream>

using namespace std;

int main() {
  int marks[1000], n, j; // 用n存储数组大小,避免和循环变量混淆
  cout << "Enter the size of an array: ";
  cin >> n;
  
  // 输入数组元素
  for (j = 0; j < n; j++) {
    cout << "Enter element " << j+1 << " of array: "; // 显示第几个元素更直观
    cin >> marks[j];
  }
  
  // 输出数组元素
  cout << "\nArray elements are:\n";
  for (j = 0; j < n; j++) {
    cout << "Element " << j+1 << ": " << marks[j] << endl;
  }
  
  return 0;
}

修正说明

  1. 用变量n存储数组大小,避免和循环变量j混淆,逻辑更清晰。
  2. 输入循环条件改为j < n,确保只循环n次,覆盖所有有效下标。
  3. 输入和输出时都使用marks[j],对应当前循环的下标位置。
  4. 输出语句补充了数组元素的打印,同时调整了提示文本的可读性。

内容的提问来源于stack exchange,提问作者bipral khatiwada

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 16:20:28