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; }
修正说明
- 用变量
n存储数组大小,避免和循环变量j混淆,逻辑更清晰。 - 输入循环条件改为
j < n,确保只循环n次,覆盖所有有效下标。 - 输入和输出时都使用
marks[j],对应当前循环的下标位置。 - 输出语句补充了数组元素的打印,同时调整了提示文本的可读性。
内容的提问来源于stack exchange,提问作者bipral khatiwada
相关产品推荐
相关产品推荐

