为什么我的C++循环代码无输出?如何修改以显示结果?
问题修复:循环未执行导致无输出
你的代码控制台没有输出,核心问题出在for循环的初始化和条件设置错误:
- 循环变量
i未初始化,初始值是随机的,而循环条件i > 0几乎不可能一开始就成立,导致循环体完全没执行。 - 就算
i初始值符合条件,当前循环没有上限终止条件,会引发数组越界访问的未定义行为。 - C++数组索引从0开始,当前条件会跳过第一个元素(索引0),不符合遍历整个数组的需求。
修复后的代码
#include <iostream> using namespace std; int main() { int p1[10]={-5,-8,0,5,0,-8,-11,-2,1,-7}; int p2[10]={0,0,0,0,0,0,0,0,0,0}; // 初始化i为0,循环条件改为i < 10,遍历数组所有元素 for(int i = 0; i < 10; i++){ p2[i] = p2[i] - p1[i]; // 输出时加空格,让结果更易读 cout << p2[i] << " "; } // 最后输出换行,整理控制台格式 cout << endl; }
关键修改点
- 给循环变量
i初始化值0,确保从数组第一个元素开始遍历 - 将循环条件改为
i < 10,匹配数组0到9的索引范围,遍历所有元素且避免越界 - 在输出语句中添加空格和换行,让输出结果更清晰易读
内容的提问来源于stack exchange,提问作者Mirek6
相关产品推荐
相关产品推荐

