📌  相关文章
📜  在C C++中以不同的行打印2D矩阵并且没有花括号?(1)

📅  最后修改于: 2023-12-03 14:51:14.516000             🧑  作者: Mango

在C/C++中以不同的行打印2D矩阵并且没有花括号?

在C/C++中打印2D矩阵经常出现的情况是使用循环和嵌套循环遍历整个矩阵,然后使用花括号打印每个元素。但有时我们想要以不同的行打印矩阵,并且不使用花括号。这里有几种方法可以满足我们的需求。

方法1: 使用换行符

使用换行符来打印每行矩阵元素是一种简单的方法,它避免了使用花括号并将每个元素打印在自己的行上。下面是一个示例:

#include <iostream>

const int ROWS = 3;
const int COLS = 3;

int main() {
    int matrix[ROWS][COLS] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
    for (int i = 0; i < ROWS; ++i) {
        for (int j = 0; j < COLS; ++j) {
            std::cout << matrix[i][j] << " ";
        }
        std::cout << "\n";
    }
    return 0;
}

输出结果为:

1 2 3
4 5 6
7 8 9
方法2: 使用制表符

使用制表符打印每个元素,可以在每行中自动对齐矩阵列。下面是一个示例:

#include <iostream>

const int ROWS = 3;
const int COLS = 3;

int main() {
    int matrix[ROWS][COLS] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
    for (int i = 0; i < ROWS; ++i) {
        for (int j = 0; j < COLS; ++j) {
            std::cout << matrix[i][j] << "\t";
        }
        std::cout << "\n";
    }
    return 0;
}

输出结果为:

1       2       3
4       5       6
7       8       9
方法3: 使用stringstream

使用std::stringstream类来构建我们要打印的字符串,我们可以使用std::setw()函数来定义每个元素的宽度,从而对齐每个元素。下面是一个示例:

#include <iostream>
#include <iomanip>
#include <sstream>

const int ROWS = 3;
const int COLS = 3;

int main() {
    int matrix[ROWS][COLS] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
    for (int i = 0; i < ROWS; ++i) {
        std::stringstream ss;
        for (int j = 0; j < COLS; ++j) {
            ss << std::setw(4) << matrix[i][j];
        }
        std::cout << ss.str() << "\n";
    }
    return 0;
}

输出结果为:

   1   2   3
   4   5   6
   7   8   9

总结

以上就是在C/C++中以不同的行打印2D矩阵并且没有花括号的方法。我们可以根据实际需求来选择不同的方法。