猜数字游戏

一、规则

随机产生四个不同的有序的数字 1 3 5 7

 等待用户输入猜测的结果:1 3 5 7

 用A来表示数字正确且位置正确的个数 1A

 用B来表示数字正确但位置不正确的个数 1B

 给8次机会

 

二、源码

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 
 4 
 5 int main(int argc, const char *argv[]){
 6     
 7     //随机数组
 8     int ranArr[4] = {};
 9     
10     //产生随机数
11     for (int i = 0; i < 4; i++) {
12         int temp = arc4random() % 9 + 1;
13         
14         //判断是否重复
15         if (i == 0) {
16             ranArr[0] = temp;
17         } else{
18             int j = 0;
19             for (; j < i; j++) {
20                 if (temp == ranArr[j]) {
21                     
22                     i--;//重新得到浪费的一次机会
23                     break;
24                 }
25             }
26             
27             if (j == i) {
28                 ranArr[i] = temp;
29             }
30             
31         }
32         
33     }
34     
35     //选择排序
36     for (int i = 0; i < 3; i++) {
37         for (int j = i + 1; j < 4; j++) {
38             if (ranArr[i] > ranArr[j]) {
39                 int temp = ranArr[i];
40                 ranArr[i] = ranArr[j];
41                 ranArr[j] = temp;
42             }
43         }
44     }
45     
46     //用户输入
47     int time = 8;
48     while (time > 0){
49         int inputArr[4] = {};
50         printf("请输入四个数字:");
51         for (int i = 0; i < 4; i++) {
52             scanf("%d", &inputArr[i]);
53         }
54         
55         
56         //判断
57         int a = 0;
58         int b = 0;
59         
60         for (int i = 0; i < 4; i++) {
61             for (int j = 0; j < 4; j++) {
62                 if (inputArr[i] == ranArr[j]) {
63                     if (i == j) {
64                         a++;
65                         break;
66                     } else{
67                         b++;
68                     }
69                 }
70             }
71             
72         }
73         
74         //打印结果
75         printf("%dA%dB\n", a, b);
76        /* for (int i = 0; i < 4; i++) {
77             printf("%d ", ranArr[i]);
78         }*/
79         if (a == 4) {
80             break;
81         }
82         time--;
83         
84     }
85     return 0;
86 }

 

posted @ 2018-07-21 21:04  健泽  阅读(155)  评论(0编辑  收藏  举报