猜数字游戏
一、规则
随机产生四个不同的有序的数字 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 }