如何在C++中创建含10个随机1的9×9零矩阵
在C/C++中创建含10个随机1的9×9矩阵
要实现需求,核心思路是先初始化一个全0的9×9矩阵,然后随机挑选10个不重复的位置将值设为1,最后按格式输出矩阵。以下是具体实现代码:
#include <iostream> #include <cstdlib> #include <ctime> int main() { // 初始化9×9全0矩阵 int matrix[9][9] = {0}; int count = 0; // 设置随机数种子,确保每次运行结果不同 srand(time(nullptr)); // 生成10个不重复的随机位置并设为1 while (count < 10) { int row = rand() % 9; int col = rand() % 9; if (matrix[row][col] == 0) { matrix[row][col] = 1; count++; } } // 按格式输出矩阵 std::cout << "array[" << std::endl; for (int i = 0; i < 9; i++) { std::cout << " [ "; for (int j = 0; j < 9; j++) { std::cout << matrix[i][j] << ", "; } std::cout << "]" << std::endl; } std::cout << "]" << std::endl; return 0; }
关键说明:
- 矩阵初始化:
int matrix[9][9] = {0};可快速将所有元素初始化为0。 - 随机数种子:
srand(time(nullptr))以当前时间为种子,避免每次运行生成相同的随机序列。 - 去重逻辑:每次生成随机行列后检查位置是否为0,仅未被设置过的位置才会设为1,确保10个1的位置不重复。
- 输出格式:循环遍历矩阵,按示例格式打印每行内容,保持视觉一致性。
内容的提问来源于stack exchange,提问作者Kokojambik
相关产品推荐
相关产品推荐

