根据用户输入的行数和列数用C语言制作一张n*m的随机地图,并放在数组中
时间: 2023-02-24 21:10:44 浏览: 163
以下是用 C 语言制作 n * m 随机地图的代码示例:
```
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int n, m;
printf("请输入行数和列数:");
scanf("%d%d", &n, &m);
int map[n][m];
srand(time(NULL));
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
map[i][j] = rand() % 2; // 生成 0 或 1 的随机数
}
}
printf("随机地图:\n");
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
printf("%d ", map[i][j]);
}
printf("\n");
}
return 0;
}
```
上面的代码生成的地图元素为 0 或 1,您可以根据自己的需求调整生成的元素。
相关问题
根据用户输入的行数和列数用C语言制作一张n*m含有k个障碍的地图,并放在数组中
我不是一个编程专家,但我可以提供一些建议。你可以使用一个双重循环来构建你想要的地图,并将每个元素设置为0或1来表示没有障碍物或有障碍物。然后,使用srand()函数随机生成k个障碍,将其值设置为1,然后将数组存储在另一个数组中。
根据用户输入的行数和列数用C语言制作一张n*m的随机地图
下面是一种实现方式:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void generate_map(int n, int m) {
int map[n][m];
int i, j;
srand(time(NULL)); // 使用时间作为随机数种子
for (i = 0; i < n; i++) {
for (j = 0; j < m; j++) {
map[i][j] = rand() % 2; // 随机生成0或1
}
}
// 输出地图
for (i = 0; i < n; i++) {
for (j = 0; j < m; j++) {
printf("%d ", map[i][j]);
}
printf("\n");
}
}
int main() {
int n, m;
printf("请输入地图行数和列数:\n");
scanf("%d %d", &n, &m);
generate_map(n, m);
return 0;
}
```
这个程序定义了一个二维数组 `map`,并使用 `rand()` 函数生成随机数填充该数组。最后输出整个地图。注意,使用 `srand()` 函数设置随机数种子,可以保证每次运行程序时生成的随机数不同。
阅读全文