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

C++中for循环未遍历数组元素,仅重复输出同一值求助

解决C++二维数组循环输出全为同一值的问题

嘿,我碰到过好几个同学遇到这种情况,大概率是你在循环输出的时候没正确使用动态索引,一直访问了数组里的同一个元素!

先给你看看最常见的错误写法——比如你可能在输出循环里固定写死了索引,像这样:

#include <iostream>
using namespace std;

int main() {
    double prices[3][3] = {10.95, 16.32, 12.15, 8.22, 15.98, 26.22, 13.54, 6.45, 17.59};
    
    // 这里犯了关键错误:一直访问prices[0][0]
    for (int i = 0; i < 3; i++) {
        for (int j = 0; j < 3; j++) {
            cout << prices[0][0] << " ";
        }
        cout << endl;
    }
    return 0;
}

这段代码里,不管外层和内层循环怎么跑,你始终在输出数组的第一个元素prices[0][0],自然所有位置都是10.95啦!

下面是修正后的正确代码,我还加了一些细节让输出更规范:

#include <iostream>
#include <iomanip> // 用来设置输出精度,保证价格显示两位小数
using namespace std;

int main() {
    // 用嵌套大括号初始化二维数组,结构更清晰
    double prices[3][3] = {
        {10.95, 16.32, 12.15},
        {8.22, 15.98, 26.22},
        {13.54, 6.45, 17.59}
    };

    cout << "3x3价格数组输出结果:" << endl;
    // 正确使用循环变量i和j作为索引,遍历每个元素
    for (int i = 0; i < 3; i++) {
        for (int j = 0; j < 3; j++) {
            cout << fixed << setprecision(2) << prices[i][j] << " ";
        }
        cout << endl;
    }

    return 0;
}

重点要注意这几点:

  • 输出时一定要用prices[i][j],让i和j随着循环动态变化,这样才能遍历到数组的每一个元素
  • 用嵌套大括号初始化二维数组,能更直观地对应3行3列的结构,也不容易出错
  • 加上fixed和setprecision(2)可以让价格始终显示两位小数,符合实际需求

如果你的问题不是输出循环的问题,而是输入时的错误(比如所有输入都存到了同一个索引),那只要把输入循环里的索引改成prices[i][j]就行啦!

内容的提问来源于stack exchange,提问作者Gina Cucchiara

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 10:07:43