说明 : 猜猜系统随机的四个数,用户输入一个四位数,与系统随机的数进行比较。。。
注意 : 系统随机的四位数,各个位的数不同
提示 : 输入位与系统对应位的数相同 输出提示A 输入位与系统对应位旁边的数字相同,输出B。
----------------------------------------------------------Suiprise-------------------------------------------------
源代码 :
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
![](https://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif)
1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <time.h> 4 #include <unistd.h> 5 #include <string.h> 6 7 void rand_num_function(char []); 8 void call_function(char [], int); 9 void judge_function(char [], char []); 10 void transform_function(); 11 void output_rand_num(char []); // 输出随机的数字 12 13 char rand_num[4]; 14 15 int main(int argc, char *argv[]) 16 { 17 int surprise_num, choose_num = 0; 18 19 srand(time(NULL)); 20 21 printf("Game begin !\n"); 22 printf("Please wait! randnumber generate .........\n"); 23 rand_num_function(rand_num); //生成随机数 24 sleep(1); 25 printf("The randnumber generate success!!\n"); 26 27 printf("If you want a suiprise, Enter 1 ----------------------------------------------------- If you do't want a suiprise !!!!Enter 0 : "); 28 scanf("%d", &choose_num); 29 if(1 == choose_num) { 30 printf("Go no Enter 521 : "); 31 scanf("%d", &surprise_num); 32 if(521 == surprise_num) { 33 printf("The rand_numbers is : "); 34 output_rand_num(rand_num); 35 printf("\n"); 36 printf("Ha Ha!!!!!!!!!!!!\n"); 37 printf("--------------------------------------------------------------------\n"); 38 printf("After identification, your IQ is 0.\n"); 39 printf("--------------------------------------------------------------------\n"); 40 } 41 else { 42 printf("--------------------------------------------------------------------\n"); 43 printf("Sorry ! You lose the change !!!\n"); 44 printf("--------------------------------------------------------------------\n"); 45 } 46 } 47 48 transform_function(); //中间转换函数 49 return 0; 50 } 51 52 void judge_function(char judge_rand_num[4], char judge_guess_num[4]) 53 { 54 int i, j; 55 int itemp = 0; 56 57 for(i = 0; i != 4; i ++) 58 { 59 if(judge_guess_num[i] == judge_rand_num[i]) { 60 ++ itemp; 61 } 62 } 63 64 if(4 == itemp) { 65 printf("Congratulation! You guess right!\n"); 66 printf("The rand_num : "); 67 output_rand_num(judge_rand_num); 68 printf("\n"); 69 printf("The Game End !!!\n"); 70 return ; 71 } 72 if(0 == itemp) { 73 printf("Unfor tunately ! No one number is right.\n"); 74 printf("Please again!\n"); 75 printf("____\n"); 76 transform_function(); 77 return ; 78 } 79 80 printf("The tips : "); 81 for(i = 0;i != 4; i ++) 82 { 83 if(0 == i) 84 { 85 if(judge_guess_num[i] == judge_rand_num[0]) { 86 printf("A"); 87 } 88 else if(judge_guess_num[i] == judge_rand_num[1]) { 89 printf("B"); 90 } 91 else { 92 printf("_"); 93 } 94 } 95 if(1 == i) { 96 if((judge_guess_num[i] == judge_rand_num[0]) || (judge_guess_num[i] == judge_rand_num[2])) { 97 printf("B"); 98 } 99 else if(judge_guess_num[i] == judge_rand_num[1]) { 100 printf("A"); 101 } 102 else { 103 printf("_"); 104 } 105 } 106 if(2 == i) { 107 if((judge_guess_num[i] == judge_rand_num[1]) || (judge_guess_num[i] == judge_rand_num[3])) { 108 printf("B"); 109 } 110 else if(judge_guess_num[i] == judge_rand_num[2]) { 111 printf("A"); 112 } 113 else { 114 printf("_"); 115 } 116 } 117 if(3 == i) { 118 if(judge_guess_num[i] == judge_rand_num[2]) { 119 printf("B"); 120 } 121 else if(judge_guess_num[i] == judge_rand_num[3]) { 122 printf("A"); 123 } 124 else { 125 printf("_"); 126 } 127 } 128 } 129 printf("\n"); 130 printf("Please again!\n"); 131 transform_function(); 132 133 return ; 134 } 135 136 void output_rand_num(char output_num[5]) 137 { 138 int i; 139 for(i = 0;i != 4; i ++) 140 { 141 printf("%d", output_num[i]); 142 } 143 144 return ; 145 } 146 147 void transform_function() 148 { 149 char guess_num[4]; 150 int num_4; 151 152 printf("Please enter four number (0 - 9999): "); 153 scanf("%d", &num_4); 154 155 if((num_4 > 10000) & (num_4 < 0)) { 156 printf("Fuck! Set tips !!!\n"); 157 transform_function(); 158 } 159 160 printf("You enter number is ---------------%d\n", num_4); 161 printf("Zheng zai jisuan -----------------------------------------------------------------------\n"); 162 sleep(2); 163 call_function(guess_num, num_4); //将用户输入的数写入数组 164 165 // printf("-----------------------"); 166 //output_rand_num(guess_num); 167 // printf("\n"); 168 169 judge_function(rand_num, guess_num); //判断函数 170 171 return ; 172 } 173 174 void call_function(char call_num[4], int call_num_4) 175 { 176 int i = 3; 177 178 do 179 { 180 call_num[i] = call_num_4 % 10; 181 call_num_4 /= 10; 182 -- i; 183 }while(i >= 0); 184 185 return ; 186 } 187 188 void rand_num_function(char rand_num_function[4]) 189 { 190 int i, itemp = 0, rand_number, jilu_number = 0; 191 192 for(i = 0; i != 4; i ++) 193 { 194 itemp = i; 195 rand_number = rand() % 10; 196 if(1 == ((jilu_number >> rand_number) & 1)) { 197 i = itemp - 1; 198 continue ; 199 } 200 jilu_number = jilu_number | 1 << rand_number; 201 rand_num_function[i] = rand_number; 202 } 203 204 return ; 205 }
改了很多次。。终于改好了。。。晕