张传旭 2016-03-26 08:27 采纳率: 92.3%
浏览 1276
已采纳

各位大神,生命游戏,代码有点长,运行输入之后总是崩溃,求大神看一下

#define _CRT_SECURE_NO_WARNINGS //关闭安全检查
#include
#include
#define hs 3 //这能改行数
#define ls 3 //这能改列数
#define tiaojian1 2 //这里可改周围几个细胞时存活
#define tiaojian2 3 //这里可改周围几个细胞时繁殖
int world[hs][ls] = { 0 };
void shuru()
{
int i, j;
while (1)
{
scanf("%d%d", &i, &j);
if (i else if (i >= hs || j >= ls)
{
printf("输入数据超范围\n");
}
world[i][j] = 1; //1为生0为死
}
}
void shuchu()
{
int i, j, k = 0;
for (i = 0; i {
printf(" %d", i);
}
printf("\n");
printf(" ┌"); //第二行
for (i = 0; i {
printf("─┬");
}
printf("─┐\n");
for (i = 0; i {
printf("%d│", i);
for (j = 0; j {
if (world[i][j] == 1)
{
printf("●│");
k++;
}
else printf("○│");
}
printf("\n");
if (i == hs - 1) break;
printf(" ├");
for (j = 0; j {
printf("─┼");
}
printf("─┤\n");
}
printf(" └");
for (i = 0; i printf("─┴");
printf("─┘\n");
printf(" 现有%d个存活细胞\n", k);
}
int panduan(int h, int l)
{
int sum = 0, i, j;
for (i = h - 1; i {
for (j = l - 1; j {
if (i = hs)
continue;
if (j < 0 || j >= ls)
continue;
if (i == h&&j == l)
continue;
if (world[i][j] == 1)
sum += 1;
}
}
return sum;
}
void huanjing()
{
int b[hs][ls] = { 0 };
for (int h = 0; h < hs; h++)
{
for (int l = 0; l < ls; h++)
{
panduan(h, l);
b[h][l] = panduan(h, l);
}
}
for (int h = 0; h < hs; h++)
{
for (int l = 0; l < ls; h++)
{
if (b[h][l] == 3)
{
world[h][l] = 1;
continue;
}
else if (b[h][l] == 2)
{
continue;
}
else
{
world[h][l] = 0;
continue;
}
}
}
}
int main(void)
{
printf("生命游戏\n");
printf("默认世界大小3*3,世界大小及规则代码定义中可改\n");
printf("输入需要添加细胞的点的坐标,添加完成后输入一组负数坐标即可终止输入\n");
shuchu();
shuru();
shuchu();
system("pause");
while (1)
{
huanjing();
shuchu();
system("pause");
}

return 0;

}
图片说明

  • 写回答

1条回答 默认 最新

  • threenewbee 2016-03-26 14:52
    关注

    调试了下
    b[h][l] = panduan(h, l);
    这里h居然跑到20多,显然b是3 by 3的,越界了。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥100 求数学坐标画圆以及直线的算法
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 自己瞎改改,结果现在又运行不了了
  • ¥15 链式存储应该如何解决
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站