C语言猜心术游戏的编程实现

img


这是一个关于猜心术的编程实现,想寻求帮助,快要C语言期末考试了,但是还是做不到,没什么头绪,想要帮助然后自己再内部消化,谢谢啦

img


#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main() {
    int numbers[7] = {1, 2, 3, 4, 5, 6, 7}; 
    int guess[4]; 
    int count = 0; 
    
    srand(time(NULL)); 

    printf("记住一个数字,系统会猜出你的数字\n");

    while (count < 3) {
        printf("系统猜测的四个数字是:");
        for (int i = 0; i < 4; i++) {
            guess[i] = numbers[rand() % 7];
            printf("%d ", guess[i]);
        }
        printf("\n");

        int exists = 0; 

        for (int i = 0; i < 4; i++) {
            int input;
            printf("请输入数字 %d 的存在性(1存在,0不存在):", guess[i]);
            scanf("%d", &input);
            if (input == 1) {
                exists = 1;
                break;
            }
        }

        count++; 


        if (exists) {
            printf("系统猜对了!你心里想的数字是存在的。\n");
            return 0;
        }
    }

    printf("系统猜错了!你心里想的数字是不存在的。\n");

    return 0;
}

这是个二进制的题
从1-7,那么可以用3位2进制数来表示
从001-111,其中000没有,先不管
那么数字要分3组,一组是个位是1的,001,011,101,111,也就是1,3,5,7
一组是第2位是1的,010,011,110,111,也就是2,3,6,7
一组是第3位是1的,100,101,110,111,也就是4,5,6,7
如果数字在第一组里,说明个位是1,否则说明个位是0,以此类推,最后把三位组合起来就是这个数
比如三问的输入分别存入abc,那么最终数就是a+2b+4c

  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7694193
  • 这篇博客也不错, 你可以看下C语言编程题目(精心准备,特别适合C语言小白)
  • 除此之外, 这篇博客: C语言之——入门必刷题(3)中的 必刷题,每道题都包含了C语言的基础知识点,值得我们去经常复习,并牢记在心的一些题目!! 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:

  •                                                                                                                              超佳出品

    • 您还可以看一下 夏曹俊老师的C语言核心编程课程中的 字符串、字符数组与指针数组和指向指针的指针由来小节, 巩固相关知识点
    • 以下回答由chatgpt基于相关博客总结生成:

      首先,了解猜心术游戏的规则是很重要的。猜心术游戏是一种思考游戏,它基于猜测参与者心里所想的内容。一般来说,游戏会按照以下步骤进行:

      1. 游戏开始,程序会要求参与者在心里想一个数字或者事物。
      2. 程序会提供一系列的问题,参与者需要根据自己的想法回答这些问题。
      3. 程序通过参与者的回答逐渐缩小问题的范围,最终猜出参与者所想的内容。

      基于以上规则,我们可以按照以下步骤设计猜心术游戏的C语言程序:

      1. 首先,程序需要定义一个数组,用于存储问题列表。 c char questions[10][100] = { "问题1", "问题2", "问题3", // ... };

      2. 然后,程序需要定义一个函数来打印问题并接收参与者的回答。 ```c int askQuestion(int questionIndex) { printf("%s\n", questions[questionIndex]);

        // 在此处等待参与者的回答并将其存储在一个变量中 // 返回参与者的回答 } ```

      3. 接下来,程序需要定义一个函数来比较参与者的回答和预设的正确答案。 c int compareAnswer(int questionIndex, int userAnswer) { // 根据问题索引,判断参与者的回答是否正确 // 如果回答正确,返回1;如果回答错误,返回0 }

      4. 然后,程序需要定义一个主函数来控制游戏的流程。 ```c int main() { int questionIndex = 0; int userAnswer;

        // 逐个输出问题并接收参与者的回答 while (questionIndex < 10) { userAnswer = askQuestion(questionIndex); if (compareAnswer(questionIndex, userAnswer)) { // 参与者的回答正确,继续下一个问题 questionIndex++; } else { // 参与者的回答错误,重新提问当前问题 } }

        // 游戏结束,输出参与者心里所想的内容 printf("你心里想的是:%s\n", questions[questionIndex - 1]);

        return 0; } ```

      以上是一个简单的猜心术游戏的C语言程序实现的示例。通过定义问题数组、编写问题输出和答案比较的函数,以及使用循环来控制游戏的流程,可以实现一个基本的猜心术游戏。请根据实际需求进行修改和完善。