1条回答 默认 最新
- CSDN专家-天际的海浪 2021-12-06 00:21关注
用一个30×30的二维字符数组,用rand函数随机生成行列数放“@”到数组中,统计不是“@”的元素的周围8个元素中有多少“@”即可
你题目的解答代码如下:#include <stdio.h> #include <stdlib.h> #include <time.h> int main() { char s[30][30]; srand((unsigned)time(NULL)); int a[8][2] = { -1, -1, -1, 0, -1, 1, 0, -1, 0, 1, 1, -1, 1, 0, 1, 1 }; int n, i, j, k, m, x, y; for (i = 0; i < 30; i++) for (j = 0; j < 30; j++) s[i][j] = '0'; scanf("%d", &n); for (i = 0; i < n; i++) { x = rand() % 30; y = rand() % 30; if (s[x][y]!='@') s[x][y] = '@'; else //如果随机出的位置已经是@,则i--让这次循环不计数 i--; } for (i = 0; i < 30; i++) { for (j = 0; j < 30; j++) { if(s[i][j] != '@') { m = 0; for (k = 0; k < 8; k++) { x = i + a[k][0]; y = j + a[k][1]; if(x>=0 && x<30 && y>=0 && y<30 && s[x][y] == '@') m++; } s[i][j] = m+'0'; } } } for (i = 0; i < 30; i++) { for (j = 0; j < 30; j++) { printf("%c ", s[i][j]); } printf("\n"); } return 0; }
如有帮助,望采纳!谢谢!
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录
悬赏问题
- ¥15 孟德尔随机化结果不一致
- ¥15 深度学习残差模块模型
- ¥50 怎么判断同步时序逻辑电路和异步时序逻辑电路
- ¥15 差动电流二次谐波的含量Matlab计算
- ¥15 Can/caned 总线错误问题,错误显示控制器要发1,结果总线检测到0
- ¥15 C#如何调用串口数据
- ¥15 MATLAB与单片机串口通信
- ¥15 L76k模块的GPS的使用
- ¥15 请帮我看一看数电项目如何设计
- ¥23 (标签-bug|关键词-密码错误加密)