程序是生成一个10X10的字符数组,初始化时全为 ‘.’  的随机步法。程序必须随机的从一个元素 ‘走到’ 另一个元素,每次只向上、向下、向左或向右移动一个元素位置。已访问过的元素按访问顺序用字母A到Z进行标记。

考察srand和rand的使用

代码不是太好,只能简单实现

  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <stdlib.h>
  4. #include <time.h>
  5.  
  6. int main()
  7. {
  8. char str[][];
  9. char point = 'A';
  10. int i,j,k,t;
  11. int randd;
  12. for(i=; i<; i++)
  13. {
  14. for(j=; j<; j++)
  15. {
  16. str[i][j] = '.';
  17. }
  18. }
  19. srand((unsigned)time(NULL));
  20. i = ; j = ;
  21. str[i][j] = 'A';
  22. while(point != 'Z')
  23. {
  24. randd = rand() % ;
  25. if(randd == && i- >= && str[i-][j] == '.')//判断条件
  26. {
  27. str[i-][j] = ++point;
  28. i -= ;
  29. }
  30. else if(randd == && j+ < && str[i][j+] == '.')
  31. {
  32. str[i][j+] = ++point;
  33. j += ;
  34. }
  35. else if(randd == && i+ < && str[i+][j] == '.')
  36. {
  37. str[i+][j] = ++point;
  38. i +=;
  39. }
  40. else if(randd == && j- >= && str[i][j-] == '.')
  41. {
  42. str[i][j-] = ++point;
  43. j -= ;
  44. }
  45. else if(str[i-][j] != '.' && str[i][j+] != '.' && str[i+][j] != '.' && str[i][j-] != '.')
  46. {
  47. break;//通过边界测定,判断跳出情况
  48. }
  49. //else randd = rand() % 4;;
  50. }
  51.  
  52. for(i=; i<; i++)
  53. {
  54. for(j=; j<; j++)
  55. {
  56. printf("%c",str[i][j]);
  57. }
  58. printf("\n");
  59. }
  60. return ;
  61. }

随机步法A-Z的更多相关文章

  1. 随机生成A~Z的字母CharDemo

  2. Python生成随机验证码,大乐透号码

    实例笔记之生成随机号码 扩展知识 - yield(生成器) 随机生成验证码 示例代码: import random # 导入标准模块中的random if __name__ == '__main__' ...

  3. python序列,字典备忘

    初识python备忘: 序列:列表,字符串,元组len(d),d[id],del d[id],data in d函数:cmp(x,y),len(seq),list(seq)根据字符串创建列表,max( ...

  4. LFI漏洞利用总结

    主要涉及到的函数 include(),require().include_once(),require_once() magic_quotes_gpc().allow_url_fopen().allo ...

  5. 重拾java系列一java基础(1)

    前言,不知不觉,从接触java到工作至今已有两年的时间,突然感觉自己的基础知识还很薄弱,有些知识虽然知道,但是停留在表面上,没有深挖,或者实践过,感觉掌握的很肤浅,而且时间一长,就觉得忘记了,我觉得这 ...

  6. LFI漏洞利用总结(转载)

    主要涉及到的函数include(),require().include_once(),require_once()magic_quotes_gpc().allow_url_fopen().allow_ ...

  7. MySQL扩展

    一.使用MySQL特有的函数!        1>到年底还有几天            select datediff('2014-12-31','2014-6-21');//此函数用于计算日期 ...

  8. 7.python常用模块

    1.time 常用表示时间方式: 时间戳,格式化的时间字符串,元组(struct_time) UTC(Coordinated Universal Time,世界协调时)亦即格林威治天文时间,世界标准时 ...

  9. GAN 转

    生成式对抗网络(GAN)是近年来大热的深度学习模型.最近正好有空看了这方面的一些论文,跑了一个GAN的代码,于是写了这篇文章来介绍一下GAN. 本文主要分为三个部分: 介绍原始的GAN的原理 同样非常 ...

随机推荐

  1. android 项目学习随笔一(闪屏 )

    1.取标题栏且全屏 <activity android:name="com.ecollab.zhsh66.SplashActivity" android:label=&quo ...

  2. Thinking In Java 读书笔记

    面向对象语言,五个基本特性: 1)万物皆为对象. 2)程序是对象的集合,他们通过发送消息来告知彼此所要做的. 3)每个对象都有自己的由其他对象所构成的存储. 4)每个对象都拥有其类型.即:每个对象都是 ...

  3. ch2-3:模块的使用-window环境

    导入模块:import 模块名 完成如下工作: 1.编写一个小程序testmodule.py,导入新建的模块nester,并定义一个小列表cast,然后使用调用模块中的函数打印列表到屏幕上: impo ...

  4. Linux之Ganglia源码安装

    一.Ganglia简介: Ganglia是UC Berkeley发起的一个开源集群监视项目,设计用于测量数以千计的节点.Ganglia的核心包含gmond.gmetad以及一个Web前端.主要是用来监 ...

  5. 自定义tableViewCell

    http://my.oschina.net/joanfen/blog/137601 效果如下图:可触发按钮事件 1.创建一个Empty Application 2.新建一个TableViewContr ...

  6. ACM题目————星际之门(一)

    描述 公元3000年,子虚帝国统领着N个星系,原先它们是靠近光束飞船来进行旅行的,近来,X博士发明了星际之门,它利用虫洞技术,一条虫洞可以连通任意的两个星系,使人们不必再待待便可立刻到达目的地. 帝国 ...

  7. c# web 缓存管理

    using System; using System.Collections; using System.Text.RegularExpressions; using System.Web; usin ...

  8. 20150604_Andriod 窗体PopupWindow

    package com.example.test1; import android.support.v7.app.ActionBarActivity;import android.os.Bundle; ...

  9. Python学习笔记-Day2-Python基础之元组操作

    元组的常用操作包括但不限于以下操作: 元组的索引,计数等 这里将对列表的内置操作方法进行总结归纳,重点是以示例的方式进行展示. 使用type获取创建对象的类 type(tuple) 使用dir获取类的 ...

  10. web前端职业规划

    关于一个WEB前端的职业规划,其实是有各种的答案,没有哪种答案是完全正确的,全凭自己的选择,只要是自己选定了, 坚持去认真走,就好.在这里,我只是简要说一下自己对于这块儿内容的理解.有一个观点想要分享 ...