pathurts 2017-11-01 10:07 采纳率: 33.3%
浏览 1339

求问一个关于生成随机步法的数组问题

题目是:编写程序,生成一种贯穿10*10字符数组(初始时全为字符 ‘.’ )的“随机步法”。程序必须随机地从一个元素“走到”另一个元素,每次都上下、向左或向右移动一个元素位置。已访问过的元素按访问顺序用字母A到Z进行标记。

#include
#include
#include
#define N 10
main()
{
char m[26]={'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'};
char a[N][N]={0};
int i=0;
int j=0;
int n;
int k=1;
int count=0;
a[0][0]=m[0];

while(k<26)
{
    srand((unsigned)time(NULL));
    n=rand()%4;
    switch(n)
    {
    case 0:
        if(a[i-1][j]==0 && i-1>=0)
        {
            i=i-1;
            a[i][j]=m[k];
            k++;
            count=0;
        }
        else if (a[i-1][j]!=0)
        {
            count++;
        }
        break;

    case 1:
        if(a[i+1][j]==0 && i+1<10)
            {
                i=i+1;
                a[i][j]=m[k];
                k++;
                count=0;
            }
            else if(a[i+1][j]!=0)
            {
                count++;
            }
            break;
    case 2:
            if(a[i][j-1]==0 && j-1>=0)
            {
                j=j-1;
                a[i][j]=m[k];
                k++;
                count=0;
            }
            else if(a[i][j-1]!=0)
            {
                count++;
            }
            break;

    case 3:
        if(a[i][j+1]==0 && j+1<10)
        {
            j=j+1;
            a[i][j]=m[k];
            k++;
            count=0;
        }
        else if(a[i][j+1]!=0)
        {
            count++;
        }
        break;
    } 
    if(count==4)
        break;
}




for(i=0;i<10;i++)
{
    for (j=0;j<10;j++)
    {
        if(a[i][j]==0)
            a[i][j]='.';
        printf("%2c",a[i][j]);
    }
    printf("\n");
}

}
输出结果只有单排或者单列的A~J
求问如何解决,谢谢。

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 用windows做服务的同志有吗
    • ¥60 求一个简单的网页(标签-安全|关键词-上传)
    • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
    • ¥15 基于卷积神经网络的声纹识别
    • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
    • ¥100 为什么这个恒流源电路不能恒流?
    • ¥15 有偿求跨组件数据流路径图
    • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
    • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
    • ¥15 一直显示正在等待HID—ISP