1208.1——猜数字小游戏

#include <stdio.h>

#include <stdlib.h>

#include <time.h>

#include <stdbool.h>

int main(int argc, const char * argv[]) {

    /*

     4位数 从小到大  没有重复 1-9

     A 表示存在而且位置也对的个数 

     B 表示存在但是位置不对

     1 2 3 4

     1 4 6 8

     1A1B

     */

    int array[4] = {};

    bool isExist = false;

    

    //设置随机数的种子

    srand((unsigned int)time(NULL));

    for (int i = 0; i < 4; i++) {

        int temp = rand() % 9 + 1;//1-9

        //判断是否存在

        for (int j = 0; j < i; j++) {

            if (array[j] == temp) {

                //已经存在了

                //把这次机会还给我

                i--;

                

                isExist = true;

            }

        }

        

        //判断是否应该保存这个数字

        if (isExist == false){

            //保存

            array[i] = temp;

        } else{

            //存在了

            isExist = false;

        }

        

    }

    

    //冒泡排序

    int temp;

    for (int i = 0; i < 4; i++){

        for (int j = 4-1-1; j >= i; j--) {

            if (array[j] > array[j+1]) {

                temp = array[j];

                array[j] = array[j+1];

                array[j+1] = temp;

            }

        }

    }

    

    for (int i = 0; i < 4; i++){

        printf("%d ", array[i]);

    }

    printf(" ");

    

    //接收用户的输入

    int totalWrongTime = 10;

    int wrongTime = 0;

    int inputedArray[4] = {};

    int countA = 0;

    int countB = 0;

    

    do {

        printf("请输入数字:");

        for (int i = 0; i < 4; i++) {

            scanf("%d", &inputedArray[i]);

        }

        

        //判断用户的输入结果

        for (int i = 0; i < 4; i++){

            for (int j = 0; j < 4; j++) {

                if (array[i] == inputedArray[j]) {

                    //数字存在了

                    //判断位置是否相同

                    if (i == j){

                        //位置也相同

                        countA ++;

                    } else{

                        //位置不同

                        countB ++;

                    }

                }

            }

        }

        

        //对结果进行处理

        if (countA == 4){

            printf("Congratulation to you ! ");

            break;

        } else{

            printf("%dA%dB ", countA, countB);

            

            wrongTime ++;

            

            //对结果清零

            countA = 0;

            countB = 0;

        }

    } while (wrongTime < totalWrongTime);

    

    return 0;

}

原文地址:https://www.cnblogs.com/damonWq/p/5030977.html