【问题标题】:How can I update a separate variable inside a for-loop in C++?如何在 C++ 的 for 循环中更新单独的变量?
【发布时间】:2019-10-26 02:38:05
【问题描述】:

我想打印二维数组中的值,其边距为 A - J。我的问题是边距不从 A 递增。

我尝试在循环中移动++k,但边距只重复“A”。

const int SIZE = 10;
int array_2D[SIZE][SIZE];   // declaring here for context; array was created in
                            // a separted function

for (int i = 0; i < SIZE; ++i)
{
    int k = 65;
    cout << char(k) << " | ";
    ++k;

    for (int j = 0; j < SIZE; ++j)
    {
        cout << setw(2) << setfill('0') << array_2D[i][j] << "   ";     
    }
    cout << endl;    
}

我希望输出是:

A | 00   08   15   01   10   05   19   19   03   05   
B | 06   00   02   08   02   12   16   03   08   17   
C | 12   05   00   14   13   03   02   17   19   16   
D | 08   07   12   00   10   13   08   20   16   15   
E | 04   12   03   14   00   05   02   12   14   09   
F | 08   05   03   18   18   00   04   02   10   19   
G | 17   16   11   03   09   07   00   03   05   09   
H | 07   06   11   10   11   11   07   00   14   09   
I | 10   04   05   15   17   01   07   17   00   09   
J | 05   20   07   04   18   19   19   03   10   00

但我明白了:

A | 00   08   15   01   10   05   19   19   03   05   
A | 06   00   02   08   02   12   16   03   08   17   
A | 12   05   00   14   13   03   02   17   19   16   
A | 08   07   12   00   10   13   08   20   16   15   
A | 04   12   03   14   00   05   02   12   14   09   
A | 08   05   03   18   18   00   04   02   10   19   
A | 17   16   11   03   09   07   00   03   05   09   
A | 07   06   11   10   11   11   07   00   14   09   
A | 10   04   05   15   17   01   07   17   00   09   
A | 05   20   07   04   18   19   19   03   10   00

【问题讨论】:

  • 在调试器中单步执行代码会在第二次循环开始时向您显示问题。调试器是您的编程工具箱中最好的工具之一,学习使用它永远不会太早。
  • "有没有办法在 C++ 的 for 循环中更新一个单独的变量?" - 看起来你已经想通了。真正的问题是什么?

标签: c++ arrays multidimensional-array


【解决方案1】:

您在循环的每次迭代中将 k 重置为 65。您需要将初始化移到循环之外,即

int k = 65;
for (int i = 0; i < SIZE; ++i)
    {
        cout << char(k) << " | ";
        ++k;


       for (int j = 0; j < SIZE; ++j)
        {

            cout << setw(2) << setfill('0') << array_2D[i][j] << "   "; 

            // array is size [10][10]
            // array was created in a separate function

        }
        cout << endl; 

    }

【讨论】:

    猜你喜欢
    • 2021-12-17
    • 2021-12-20
    • 1970-01-01
    • 1970-01-01
    • 2021-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多