| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1521 人关注过本帖
标题:如何将字母A放在数组左上角第一个位置(随机分布)
只看楼主 加入收藏
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:2 
你这里9个格,必然总有空间填够9个字母,当然是第10个在外面了,还用算的么?

授人以渔,不授人以鱼。
2015-09-16 23:22
达尔文
Rank: 2
等 级:论坛游民
帖 子:84
专家分:29
注 册:2015-8-22
收藏
得分:0 
回复 11楼 TonyDeng
是在10*10的矩阵中输出26个字母。偶尔会遇到那种死胡同

能有一件喜欢的事很不容易,就坚持下去吧.....
2015-09-18 12:40
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
你给几个真正的、具体的实例看看。

授人以渔,不授人以鱼。
2015-09-18 13:41
达尔文
Rank: 2
等 级:论坛游民
帖 子:84
专家分:29
注 册:2015-8-22
收藏
得分:0 
回复 13楼 TonyDeng
看5楼。就是实例的一种。还有就是有时候编译运行了没什么反应,我猜想应该是遇到有字母无法走了这种情况,如何让它输出呢,毕竟我编译运行了好多次。都没见过由于无路可走而输出的情况。还有就是如何让A总从左上角第一个位置开始呢?这两点就是这个程序最后不完善的部分。

能有一件喜欢的事很不容易,就坚持下去吧.....
2015-09-18 14:19
我爱吃青菜
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:6
帖 子:190
专家分:500
注 册:2015-3-29
收藏
得分:0 
先map[0][0]=str;然后你又历遍数组赋值'.',不就把A删掉了?
i = rand()%MAXX; j = rand()%MAXY;改成i=0;j=0;
count=0改成count=1

这样就可以从左上角开始了

[ 本帖最后由 我爱吃青菜 于 2015-9-19 18:17 编辑 ]
2015-09-19 13:13
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
如果發現有問題,陷入死機現象,就要設法在代碼中添加檢測手段,判斷是否走到無路可走的境界,換句話說,你每走一步之前,都應先檢測有沒有出路,很顯然你缺了這一環節。歸根結底是貪圖代碼精簡之故,過於精煉的代碼,其實反而妨礙你排錯。到了這一步田地,要麼破壞代碼的精簡性,要麼另外設計算法。

授人以渔,不授人以鱼。
2015-09-19 13:44
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
別說你編譯和運行了幾次就出現問題。一個程序,哪怕運行了成千上萬次沒有發現問題,但祗要有一次出現問題,就必須回頭修補程序,而實踐的經驗往往是,越是這樣的情況,要整個推倒重來的可能性越大,那多數是你的核心設計有死角。

授人以渔,不授人以鱼。
2015-09-19 13:53
gold615
Rank: 2
等 级:论坛游民
帖 子:54
专家分:75
注 册:2014-6-7
收藏
得分:0 
确实不懂楼主的意思啊 不过挺好玩儿的
2015-09-19 15:09
我爱吃青菜
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:6
帖 子:190
专家分:500
注 册:2015-3-29
收藏
得分:0 
我在外围加了一层空格

程序代码:
#include <stdio.h>
#include <time.h>
#include <stdlib.h>

#define MAXX 12
#define MAXY 12

int main() 
{
    int i, j, count = 1;
    char map[MAXX][MAXY];
    const char str='A';
    srand( (unsigned) time(NULL) ); 
    
    for (i=0; i<MAXX; i++)
    {     
        for (j=0; j<MAXY; j++)
        {
            if(i == 0 || j == 0 || i == MAXX-1 || j == MAXY-1)
                map[i][j] = ' ';
            else
                map[i][j] = '.';
        }
    }
    i = 1;
    j = 1;
    map[1][1] = str;
     
    while(1)
    {
        if(map[i-1][j  ] != '.' && map[i+1][j  ] != '.' &&
           map[i  ][j-1] != '.' && map[i  ][j+1] != '.')
            break;
        switch (rand()%4) //0、1、2、3分别代表上、下、左、右
        {        
        case 0: if(map[i-1][j] == '.')
        {  map[--i][j]=str+count;
           count ++;
        }     break;
    
        case 1: if(map[i+1][j] == '.')
        {  map[++i][j]=str+count;
           count ++;
        }     break;
        case 2: if(map[i][j-1] == '.')
        {  map[i][--j]=str+count;
           count ++;
        }     break;
        case 3: if(map[i][j+1] == '.')
         {  map[i][++j]=str+count;
           count ++;
        }     break;  
        }
        if(count == 26)   break;
    }
    

      for(i=0;i<MAXX;++i)
      {
         for(j=0;j<MAXY;++j)
         printf("%c ",map[i][j]);
         printf("\n");
      }
      getchar();
      return 0;
}


图片附件: 游客没有浏览图片的权限,请 登录注册


[ 本帖最后由 我爱吃青菜 于 2015-9-19 18:31 编辑 ]
2015-09-19 18:29
达尔文
Rank: 2
等 级:论坛游民
帖 子:84
专家分:29
注 册:2015-8-22
收藏
得分:0 
回复 19楼 我爱吃青菜
哇哦,没错就是这个我好好看看

能有一件喜欢的事很不容易,就坚持下去吧.....
2015-09-20 00:00
快速回复:如何将字母A放在数组左上角第一个位置(随机分布)
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019463 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved