【问题标题】:Create a 10x10 matrix filled with random integers from 1 - 99 using functions (C++)使用函数 (C++) 创建一个 10x10 矩阵,其中填充了 1 - 99 的随机整数
【发布时间】:2021-06-27 03:34:02
【问题描述】:

我正在编写一些具有 2 个功能的代码。我相信第一个功能没有问题。第一个是创建填充随机数的 10x10 矩阵,第二个函数是打印矩阵。我遇到的问题是,即使声明了行和列大小,矩阵也会打印在一行中,而不是网格状。当限制达到 10 时,我尝试使用 setw 结束行。我是编程新手,所以我不确定为什么数组没有按应有的方式打印。

这是我的代码:

#include <iostream>
#include <ctime>
#include <iomanip>
#include <cstdlib>

using namespace std;

const int ROW_SIZE = 10;
const int COLUMN_SIZE = 10;

void initialize(int [][10], int, int);
void display(int matrix[][10], int, int);

int main() {

    int matrix [ROW_SIZE][COLUMN_SIZE];

    initialize(matrix, ROW_SIZE, COLUMN_SIZE);

    display(matrix, ROW_SIZE,COLUMN_SIZE);


    return 0;
}


//question 1
void initialize(int matrix[][COLUMN_SIZE], int ROW_SIZE, int COLUMN_SIZE){
    for (int i = 0; i < ROW_SIZE; i++){
        for(int j = 0; j < COLUMN_SIZE; j++){
            matrix[i][j] =  1 + rand() % 99;
        }
    }
}

//question 2
void display(int matrix[][COLUMN_SIZE], int ROW_SIZE, int COLUMN_SIZE){
    for(int i = 0; i < ROW_SIZE; i++){
        for(int j = 0; j < COLUMN_SIZE; j++){
            cout<< setw(4)<<matrix[i][j]<< " ";
        }
    }
    cout<< endl;
}

【问题讨论】:

  • 既然是C++,为什么不做一个矩阵类呢?
  • 提示:每行打印完后,std::cout &lt;&lt; std::endl.

标签: c++ arrays function loops matrix


【解决方案1】:

问题是您从未打印过行尾字符。 Setw(n) 会告诉 cout 你写的每一块文本都必须用 n 个字符打印,但它并没有说那块文本必须以换行符结尾。

为了确保矩阵的每一行之后都有一个新行,您可以在打印每一行之后编写 cout

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-08-27
    • 1970-01-01
    • 2012-03-06
    • 2018-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-01
    相关资源
    最近更新 更多