随机路径选择
随机路径选择
LCYang2015 发表于2年前
随机路径选择
  • 发表于 2年前
  • 阅读 14
  • 收藏 0
  • 点赞 1
  • 评论 0

腾讯云 新注册用户 域名抢购1元起>>>   

摘要: C语言编写。在10*10的空间内从A到Z每一步改变为下一个字母。上下左右4个方向随机移动。直到结束或无法移动。运用二维数组。 PS:《C程序设计现代方法》第八章的课后习题最后一题,在clodeblocks 上面测试通过!
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
    int move ;
    int i = 0;
    int j = 0;
    int flagi = 0;
    int flagj = 0;
    int choice = 0;
    int a[10][10] = {0};
    a[0][0] = 1;
    int count ;
    srand((unsigned)time(NULL));                          //随机种子设置
/*******************************************/
    for(count = 2; count <= 26; count++)
    {
        flagi = i;
        flagj = j;                              //记录未移位之前的位置信息
        move = rand() % 4;
        for(choice = 0; choice < 4; choice++)  //最多四种可能的选择
        {
            if(move == 0)
            {
                flagj = j - 1;
            }
            else if(move == 1)
            {
                flagi = i - 1;
            }
            else if(move == 2)
            {
                flagj = j + 1;
            }
            else
            {
                flagi = i + 1;
            }// 0,1,2,3 分别左,上 ,右 ,下

            if((flagi < 0 || flagi > 9 || flagj < 0 || flagj > 9) || ((a[flagi][flagj] != 0)))
            {
                flagi = i;
                flagj = j;
                move = (move + 1) % 4;
                continue;
            }//越界
            else
            {
                i = flagi;
                j = flagj;
                break;
            }
        }
        if(choice >= 4)
        {
           break;
        }//提前结束路径寻找
        a[flagi][flagj] = count;
    }
/*******************************************/
    printf("The matrix would be :\n");
    for(i = 0; i < 10; i++)
    {
        for(j = 0; j < 10; j++)
        {
            if(a[i][j] != 0)
            {
                printf("%c\t", 64+a[i][j]);
            }
            else
            {
                printf("*\t");
            }
        }
        putchar(10);
    }
    return 0;
}
标签: 随机步 c语言
共有 人打赏支持
粉丝 0
博文 4
码字总数 1945
×
LCYang2015
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: