根据用户输入的行数和列数用C语言制作一张n*m含有k个障碍的地图,并放在数组中,写出代码...

我不太熟悉C语言,但是可以提供一些参考:// 声明地图数组 int map[n][m];// 初始化地图 for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { map[i][j] = 0; } }// 在地图中放置k个障碍 for (int k = 0; k < k; k++) { int x = rand() % n; int y = rand() % m; map[x][y] = 1; }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 我提出的具体代码如下: int map[n][m]; for(int i=0; i<n; i++){ for(int j=0; j<m; j++){ map[i][j]=0; } } for(int i=0;i<k;i++){ int x=rand()%n; //随机生成行号 int y=rand()%m; //随机生成列号 if(map[x][y]==0){ map[x][y]=1; //障碍标记为1 } else{ i--; //重新生成障碍 } } ### 回答2: 您好,以下是一种用C语言制作一张含有障碍地图的示例代码: ```c #include <stdio.h> #include <stdlib.h> void createMap(int n, int m, int k, int map[][m]) { // 初始化地图,将所有位置设为0表示空地 for(int i = 0; i < n; i++) { for(int j = 0; j < m; j++) { map[i][j] = 0; } } // 随机生成k个障碍物的位置 for(int i = 0; i < k; i++) { int row = rand() % n; // 随机生成行坐标 int col = rand() % m; // 随机生成列坐标 map[row][col] = 1; // 设为1表示有障碍物 } } int main() { int n, m, k; printf("请输入地图行数:"); scanf("%d", &n); printf("请输入地图的列数:"); scanf("%d", &m); printf("请输入地图障碍物的个数:"); scanf("%d", &k); int map[n][m]; // 定义n*m的地图数组 createMap(n, m, k, map); // 创建地图 // 打印地图 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; } ``` 这段代码首先定义了一个createMap函数,该函数根据输入行数n、列数m和障碍物个数k,在地图数组map中随机生成k个障碍物的位置,并将其设为1。 然后在主函数中,根据用户输入行数、列数和障碍物个数,创建一个合适大小的地图数组map,并调用createMap函数来生成地图。 最后,程序会打印生成的地图,其中0表示空地,1表示障碍物。 希望对您有帮助! ### 回答3: 以下是根据用户输入行数列数用C语言制作一张n*m含有k个障碍地图,并放在数组中代码: ```c #include <stdio.h> #include <stdlib.h> #include <time.h> void createMap(int n, int m, int k, char map[][m]) { srand(time(NULL)); int i, j; // 初始化地图为全空 for (i = 0; i < n; i++) { for (j = 0; j < m; j++) { map[i][j] = '.'; } } // 添加障碍 while (k > 0) { i = rand() % n; j = rand() % m; if (map[i][j] == '.') { map[i][j] = '#'; k--; } } } int main() { int n, m, k; printf("请输入地图行数和列数(以空格分隔):"); scanf("%d %d", &n, &m); printf("请输入地图中的障碍数量:"); scanf("%d", &k); char map[n][m]; createMap(n, m, k, map); printf("生成的地图为:\n"); int i, j; for (i = 0; i < n; i++) { for (j = 0; j < m; j++) { printf("%c ", map[i][j]); } printf("\n"); } return 0; } ``` 这段代码首先通过`scanf`函数获取用户输入行数、列数和障碍数量。然后定义一个`char`类型的二维数组`map`来表示地图,并调用`createMap`函数生成地图。`createMap`函数使用`rand`函数生成随机数来确定障碍的位置,并将地图上的障碍用`'#'`表示。最后,在`main`函数中通过两个嵌套的循环打印出生成的地图

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值