原题是:
编写程序,要求此程序可以产生一种贯穿10X10数组的随机步。数组包含字符。程序必须是从一个元素随机走到另一个元素,对一个元素来说这种行走始终是向上、向下、向左、向右。程序访问的元素将用从A到Z的字母进行标记,而且是按顺序的进行访问下面是希望输出的一个实例:
A . . . . . . . . .
B C D . . . . . . .
. F E . . . . . . .
H G . . . . . . . .
I . . . . . . . . .
J . . . . . . . Z .
K . . R S T U V Y .
L M P Q . . . W X .
. N O . . . . . . .
. . . . . . . . . .
注意: 不能走到数组外面,不能走到已有字母标记的位置。只要有一个条件不满足,就得尝试换一个方向移动。如果4个方向都堵住了,程序就必须终止了。
附上我的答案。如果有问题,请指正。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 |
#include <stdio.h> #include <time.h> #include <stdlib.h> #define MAXX 10 #define MAXY 10 void generate_random_walk(char walk[10][10]); void print_array(char walk[10][10]); void process(char walk[10][10]); int main(void) { char walk[10][10]; generate_random_walk(walk);//调用generate_random_walk函数,对数组初始化。 srand(( |