首页 > 代码库 > 随机步法A-Z
随机步法A-Z
程序是生成一个10X10的字符数组,初始化时全为 ‘.’ 的随机步法。程序必须随机的从一个元素 ‘走到’ 另一个元素,每次只向上、向下、向左或向右移动一个元素位置。已访问过的元素按访问顺序用字母A到Z进行标记。
考察srand和rand的使用
代码不是太好,只能简单实现
#include <stdio.h>#include <string.h>#include <stdlib.h>#include <time.h>int main(){ char str[10][10]; char point = ‘A‘; int i,j,k,t; int randd; for(i=0; i<10; i++) { for(j=0; j<10; j++) { str[i][j] = ‘.‘; } } srand((unsigned)time(NULL)); i = 0 ; j = 0; str[i][j] = ‘A‘; while(point != ‘Z‘) { randd = rand() % 4; if(randd == 0 && i-1 >= 0 && str[i-1][j] == ‘.‘)//判断条件 { str[i-1][j] = ++point; i -= 1; } else if(randd == 1 && j+1 < 10 && str[i][j+1] == ‘.‘) { str[i][j+1] = ++point; j += 1; } else if(randd == 2 && i+1 < 10 && str[i+1][j] == ‘.‘) { str[i+1][j] = ++point; i +=1; } else if(randd == 3 && j-1 >= 0 && str[i][j-1] == ‘.‘) { str[i][j-1] = ++point; j -= 1; } else if(str[i-1][j] != ‘.‘ && str[i][j+1] != ‘.‘ && str[i+1][j] != ‘.‘ && str[i][j-1] != ‘.‘) { break;//通过边界测定,判断跳出情况 } //else randd = rand() % 4;; } for(i=0; i<10; i++) { for(j=0; j<10; j++) { printf("%c",str[i][j]); } printf("\n"); } return 0;}
随机步法A-Z
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。