c++随机数初始二维数组
时间: 2024-01-04 15:20:03 浏览: 31
以下是一个示例,演示如何在C++中使用随机数初始化二维数组:
```cpp
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int main() {
// 设置随机数种子
srand(time(0));
// 定义二维数组
int nums[3][3];
// 使用随机数初始化二维数组
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
nums[i][j] = rand() % 100; // 生成0到99之间的随机数
}
}
// 输出二维数组
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
cout << nums[i][j] << " ";
}
cout << endl;
}
return 0;
}
```
相关问题
memset二维数组初始化
使用memset函数初始化二维数组时需要注意以下几点:首先,对于二维整型数组,memset函数只能将数组初始化为0或者-1,否则数组的值将会是随机数;而对于二维char数组,memset函数则可以将数组初始化为任意字符。其具体写法如下:
```
#include <bits/stdc++.h>
using namespace std;
const int m = 3;
const int n = 5;
char a[m][n]; // char数组
int main() {
memset(a, '*', sizeof(a)); // 此处的星号*可改为任意字符
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
cout << a[i][j << " ";
}
cout << endl;
}
return 0;
}
```
在上述代码中,使用`memset(a, '*', sizeof(a))`将二维char数组a初始化为*字符。注意,这里的`'*'`可以改为任意字符。运行代码后,即可将二维数组a的所有元素都初始化为相应字符。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [C++——C++创建动态二维数组+memset()函数初始化](https://blog.csdn.net/CSDN131137/article/details/103016793)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"]
- *2* [使用memset()函数初始化二维数组](https://blog.csdn.net/qq_53269459/article/details/119535151)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"]
- *3* [使用memset()函数初始化二维数组时的注意事项](https://blog.csdn.net/hnjzsyjyj/article/details/112408497)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"]
[ .reference_list ]
c++二维数组编写扫雷游戏
下面是一个简单的 C++ 二维数组实现扫雷游戏的例子:
```c++
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
const int ROWS = 10;
const int COLS = 10;
void initBoard(bool board[][COLS], int mines);
void printBoard(bool board[][COLS], bool reveal);
int main() {
srand(time(nullptr)); // 设置随机数种子
bool board[ROWS][COLS];
int mines = 10;
initBoard(board, mines);
printBoard(board, false); // 初始状态,不显示地雷
return 0;
}
void initBoard(bool board[][COLS], int mines) {
// 初始化棋盘
for (int i = 0; i < ROWS; ++i) {
for (int j = 0; j < COLS; ++j) {
board[i][j] = false;
}
}
// 布置地雷
int count = 0;
while (count < mines) {
int row = rand() % ROWS;
int col = rand() % COLS;
if (!board[row][col]) {
board[row][col] = true;
count++;
}
}
}
void printBoard(bool board[][COLS], bool reveal) {
cout << " ";
for (int i = 0; i < COLS; ++i) {
cout << i << " ";
}
cout << endl;
for (int i = 0; i < ROWS; ++i) {
cout << i << " ";
for (int j = 0; j < COLS; ++j) {
if (board[i][j]) {
if (reveal) {
cout << "* ";
} else {
cout << ". ";
}
} else {
cout << "- ";
}
}
cout << endl;
}
}
```
在这个例子中,我们定义了一个 `bool` 类型的二维数组 `board`,表示扫雷游戏的棋盘。数组的每个元素代表一个方格,值为 `true` 表示这个方格上有地雷,否则没有地雷。
`initBoard()` 函数用来初始化棋盘,随机布置指定数量的地雷。
`printBoard()` 函数用来打印棋盘。如果 `reveal` 参数为 `true`,表示要显示所有的地雷,否则只显示未被翻开的方格。
在 `main()` 函数中,我们设置随机数种子,然后调用 `initBoard()` 函数初始化棋盘,并调用 `printBoard()` 函数打印初始状态的棋盘。