【问题标题】:cout<<endl; not working for printing a 2d array [closed]cout<<endl;不适用于打印二维数组[关闭]
【发布时间】:2020-10-18 16:35:33
【问题描述】:

我正在尝试打印这样的二维数组。

1,2

3,4

5,6

7,8

直到 20 点

这是代码

#include <iostream>
using namespace std;
int main()
{
    int A[10][2]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20};

    for(int i=0;i<10;i++)
        for(int j=0;j<2;j++)
        {
            cout<<A[i][j]<<" ";
        }
        cout << endl;



}

但是每次打印时,它都会以直线打印它们,例如 1 2 3 4 5 6............. 我会做错什么吗?

【问题讨论】:

  • 开启编译器警告。它是否说您的代码可能是错误的?与缩进有关吗?
  • 你没有做你认为你正在做的事情:你实际上是在做这个:for(int i=0;i&lt;10;i++) { for(int j=0;j&lt;2;j++) { cout&lt;&lt;A[i][j]&lt;&lt;" "; } } cout &lt;&lt; endl;
  • 如果在for 循环之后不使用大括号,那么只有下一行将在for 的范围内。所以在第一个for 之后使用大括号,然后将第二个forcout &lt;&lt; endl; 放在第一个for 的范围内。
  • int A[10][2] = { {1, 2}, {3, 4 }, {5, 6}, {7, 8}, {9, 10}, {11, 12}, {13, 14}, {15, 16}, {17, 18}, {19, 20} }; 初始化数组的正确方法
  • 好的,我在大括号中添加了第二个“for”,得到了想要的结果。但是为什么 endl;当我把它放在第二个大括号中时不会被迭代吗?为什么 '2' 在 '1' 之后没有出现在第二行?

标签: c++ arrays endl


【解决方案1】:

嘿,你忘了在第一个 for 循环之后添加 {}。 这是解决方案

#include <iostream>
using namespace std;
int main()
{
    int A[10][2]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20};

    for(int i=0;i<10;i++)
    {
        for(int j=0;j<2;j++)
        {
            cout<<A[i][j]<<" ";
        }
        cout << endl;   
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-27
    • 1970-01-01
    相关资源
    最近更新 更多