【问题标题】:How to create matrix output pattern with array 2D in C++如何在 C++ 中使用二维数组创建矩阵输出模式
【发布时间】:2020-11-07 22:56:50
【问题描述】:

我在用 C++ 编程以使用 2D 数组进行模式化输出时遇到了一点困难,我使输出像这样的矩阵: 输入 4(用于第 4 列和第 4 行)

I I I I
0 0 I 0
0 I 0 0
I I I I

我已经尝试过这个我的程序。对于顶行和底行,我设法将值更改为 1

   #include <iostream>
using namespace std;

int main(){
    int elemen[100][100], n, i, j, k;
    
    cout <<"input element = ";
    cin >>n;
    
    for(i = 0;i < n;i++){
        for(j = 0;j < n;j++){
            elemen[0][j] = 1;
            elemen[n-1][j] = 1;
            elemen[n-i][n-j] = 1;           
            cout <<elemen[i][j]<<" ";
        }   
        cout<<endl;
    }
    
}

但是上面的程序中出现的输出是这样的:

I I I I
0 0 0 0
0 0 I I
I I I I

而逻辑上它是正确的,我已经在非输入数组上尝试过。而逻辑上它是正确的,我已经在非输入数组上尝试过。因为如果我们输入数组元素 = 5,那么循环会自动将 5 的值一一减少。有没有人可以帮忙,如果你不明白,对不起,因为我目前仍在学习磨练我的逻辑

【问题讨论】:

    标签: c++ arrays multidimensional-array


    【解决方案1】:

    除非您实际上将elemen 用于打印此图案以外的任何其他用途,否则我建议您放弃它并直接打印该图案。

    例子:

    #include <cstddef>  // size_t
    #include <iostream>
    #include <string>
    
    int main() {
        std::size_t n = 4;
        
        std::cout << std::string(n, 'I') << '\n';
    
        for(std::size_t i=1; i < n - 1; ++i) {
            std::cout
                << std::string(n - i - 1, '0') 
                << 'I'
                << std::string(i, '0')
                << '\n'
            ; 
        }
    
        std::cout << std::string(n, 'I') << '\n';
    }
    

    输出:

    IIII
    00I0
    0I00
    IIII
    

    【讨论】:

      【解决方案2】:

      试试这个

       for(i = 0;i < n;i++){
            for(j = 0;j < n;j++){
                  if (i == 0 || i == n-1 || i == n-j-1)
                      elemen[i][j] = 1;
                  else
                      elemen[i][j] = 0;
                  ...
             }
             ...
        }
      
      • i = 0 给你顶行
      • i = n-1 给你最后一行
      • i = n-j-1 给你反向对角线

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2023-03-12
        • 1970-01-01
        • 2021-01-31
        • 2020-09-19
        • 2011-02-11
        • 2014-06-21
        • 1970-01-01
        相关资源
        最近更新 更多