| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1521 人关注过本帖
标题:如何将字母A放在数组左上角第一个位置(随机分布)
取消只看楼主 加入收藏
达尔文
Rank: 2
等 级:论坛游民
帖 子:84
专家分:29
注 册:2015-8-22
结帖率:100%
收藏
已结贴  问题点数:5 回复次数:9 
如何将字母A放在数组左上角第一个位置(随机分布)
编写程序,生成一种贯穿10*10字符数组的“随机分布”。A-Z
程序代码:
#include <stdio.h>
#include <time.h>
#include <stdlib.h>

#define MAXX 10
#define MAXY 10
int main() 
{
    int i =0, j = 0, count = 0;
    char map[MAXX][MAXY];
    const char str='A';
    
    

    
    for (i=0; i<MAXX; i++)
    {     
        for (j=0; j<MAXY; j++)
        {
            map[i][j]='.';
        }
    }

    srand( (unsigned) time(NULL) );    
    i = rand()%MAXX; 
    j = rand()%MAXY;
    
    while(1)
    {
        

        
        
        switch (rand()%4) //0、1、2、3分别代表上、下、左、右
        {        
        case 0: if (i-1>=0    && map[i-1][j  ]=='.') 
        {  map[i-1][j]=str+count;
           count ++;
           i -= 1;
        }     break;
    
        case 1: if (i+1<=MAXX && map[i+1][j  ]=='.') 
        {  map[i+1][j]=str+count;
           count ++;
           i += 1;
        }     break;
        case 2: if (j-1>=0    && map[i  ][j-1]=='.') 
        {  map[i][j-1]=str+count;
           count ++;
           j -= 1;
        }     break;
        case 3: if (j+1<=MAXY && map[i  ][j+1]=='.')
         {  map[i][j+1]=str+count;
           count ++;
           j += 1;
        }     break;    
        }
        if(count ==26)   break;
}
    

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

搞了好久,求教
搜索更多相关主题的帖子: 编写程序 如何 字母 
2015-09-15 12:53
达尔文
Rank: 2
等 级:论坛游民
帖 子:84
专家分:29
注 册:2015-8-22
收藏
得分:0 
const char str='A';下面还有这句
map[0][0]=str; 不小心给删了。可还是没什么用哈

能有一件喜欢的事很不容易,就坚持下去吧.....
2015-09-15 12:57
达尔文
Rank: 2
等 级:论坛游民
帖 子:84
专家分:29
注 册:2015-8-22
收藏
得分:0 
回复 3楼 wp231957
图片附件: 游客没有浏览图片的权限,请 登录注册

像这样,怎么把A弄左上角第一个'.'那呢

能有一件喜欢的事很不容易,就坚持下去吧.....
2015-09-15 18:19
达尔文
Rank: 2
等 级:论坛游民
帖 子:84
专家分:29
注 册:2015-8-22
收藏
得分:0 
回复 4楼 rjsp
如果4个方向都走不通了,程序得终止了。。像有时候编译出来什么都没有显示,是不是属于走不通这种情况呢?如果走不通,如何输出结果呢?(走了多少个字母显示多少个)。虚心求教

能有一件喜欢的事很不容易,就坚持下去吧.....
2015-09-15 18:27
达尔文
Rank: 2
等 级:论坛游民
帖 子:84
专家分:29
注 册:2015-8-22
收藏
得分:0 
回复 7楼 TonyDeng
像4楼所说那样,如果
A H G
B I F
C D E
此时 J 没有地方放了,则程序必须输出

能有一件喜欢的事很不容易,就坚持下去吧.....
2015-09-16 10:43
达尔文
Rank: 2
等 级:论坛游民
帖 子:84
专家分:29
注 册:2015-8-22
收藏
得分:0 
回复 9楼 TonyDeng
随机走(4个方向【上 下 左 右】)。依次ABCD......Z。如果上下左右都被前面输出的字母占据,没有走的路了。则选择输出。

能有一件喜欢的事很不容易,就坚持下去吧.....
2015-09-16 22:48
达尔文
Rank: 2
等 级:论坛游民
帖 子:84
专家分:29
注 册:2015-8-22
收藏
得分:0 
回复 11楼 TonyDeng
是在10*10的矩阵中输出26个字母。偶尔会遇到那种死胡同

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

能有一件喜欢的事很不容易,就坚持下去吧.....
2015-09-18 14:19
达尔文
Rank: 2
等 级:论坛游民
帖 子:84
专家分:29
注 册:2015-8-22
收藏
得分:0 
回复 19楼 我爱吃青菜
哇哦,没错就是这个我好好看看

能有一件喜欢的事很不容易,就坚持下去吧.....
2015-09-20 00:00
达尔文
Rank: 2
等 级:论坛游民
帖 子:84
专家分:29
注 册:2015-8-22
收藏
得分:0 
回复 19楼 我爱吃青菜
爱死你了

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



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

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