要求用C语言编写一个m*n地图,用数字0,1,2,3表示,其中0为不可通过路径,1为可通过路径,2,3表示必须通过的两种标志点,
时间: 2023-10-08 08:13:19 浏览: 76
好的,以下是一个简单的示例代码,用于生成一个m*n地图并填充数字0、1、2、3:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
int m = 10; // 行数
int n = 10; // 列数
int map[m][n]; // 地图数组
// 随机种子
srand(time(NULL));
// 生成地图
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
// 生成随机数
int num = rand() % 4;
// 如果是2或3,则必须通过
if (num == 2 || num == 3) {
map[i][j] = num;
} else {
map[i][j] = rand() % 2;
}
}
}
// 输出地图
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
printf("%d ", map[i][j]);
}
printf("\n");
}
return 0;
}
```
运行结果可能如下所示:
```
0 1 2 1 1 0 1 0 3 0
2 2 1 2 1 1 2 2 1 0
0 0 0 0 2 2 2 0 1 1
1 1 2 0 2 0 1 0 3 0
0 3 2 0 2 1 2 2 0 0
0 1 1 0 1 3 0 1 1 0
3 2 2 2 1 1 1 0 1 1
2 2 2 2 0 0 0 1 1 2
1 0 0 1 2 0 1 0 0 2
1 2 1 0 3 1 0 1 1 1
```
可以看到,其中0、1、2、3数字已经填充到地图中了。
阅读全文