【问题标题】:printing an array as a table in c++在 C++ 中将数组打印为表格
【发布时间】:2020-04-16 17:40:57
【问题描述】:

所以,我正在尝试以 11 行和 11 列的表格格式打印数组 Fi[rows][columns]。我使用的代码是:

for (int i = 0; i < rows ; i++){
    for (int j=0; j< columns; j++)
        std::cout << Fi[i][j]<<"\t";
    std::cout << "\n";
}

我的问题是,打印在 Fi[0][10] 上的元素不是它应该是的元素。实际上,如果我只是打印出来

std::cout<< Fi[0][10];

我得到了正确的值。 有人可以帮我弄清楚我做错了什么吗?

【问题讨论】:

  • 显示的代码看起来不错。你的问题一定出在其他地方。请提供minimal reproducible example 显示您使用值填充数组然后输出它们。硬编码插入,所以我们都可以看到值是什么。然后将预期输出和实际输出作为问题中的文本提供。
  • 更喜欢使用std::setw 而不是制表符。制表符没有标准间距。常见的制表符长度为 2、3、4 和 8。这适用于固定间距字体,对于可变间距字体,间距会有所不同。此外,一些控制台可能会使用“到下一个定义的制表位的空格”的定义,它可以是任何东西。

标签: c++ arrays printing


【解决方案1】:

您正在寻找这样的东西吗?我把std::cout &lt;&lt; "\n";的部分改成了std::cout &lt;&lt; std::endl;

#include <array>
int main() {
    int rows = 4;
    int columns = 5;

    int my_array[rows][columns] = {{0,1,2,3,4},{5,6,7,8,9},{10,11,12,13,13},{14,15,16,17,18}};

    for (int i = 0; i < rows ; i++){
        for (int j=0; j< columns; j++)
            std::cout << my_array[i][j]<<"\t";
        std::cout << std::endl;
    }

    return 0;
}

输出:

0   1   2   3   4   
5   6   7   8   9   
10  11  12  13  13  
14  15  16  17  18  

【讨论】:

    【解决方案2】:
    using namespace std;
    #include<iostream>
    int main(){
    int num[3][3],i=0,sum=0;
    
    for(i=0;i<3;i++){
        for(int j=0;j<3;j++){
            cin>>num[i][j];
            sum+=num[i][j];
    
    }
    
    }
    
    for(i=0;i<3;i++){
        for(int j=0;j<3;j++){
            cout<<num[i][j]<<"\t";
        }
        cout<<endl;
        }
    
    cout<<sum<<endl;
    return 0;
     }
    

    【讨论】:

    • Stack Overflow 旨在促进学习。出于这个原因,答案不仅应该包括更正或改进的代码,还应该包括对如何为什么实现工作的解释。没有任何解释的代码转储很少有帮助,即使代码“应该是自我解释的”,添加解释也能确保每个人都能理解。请编辑您的答案并解释它如何回答所提出的具体问题。来自How to Answer:“简洁是可以接受的,但更全面的解释更好。”
    • 请在您的回答中提供更多详细信息。正如目前所写的那样,很难理解您的解决方案。
    猜你喜欢
    • 2018-03-09
    • 1970-01-01
    • 2023-03-18
    • 1970-01-01
    • 2021-02-01
    • 2014-10-13
    • 2012-03-21
    • 2012-08-11
    相关资源
    最近更新 更多