题目:编写一个猜谜游戏的程序。

程序分析:猜谜游戏中,程序会随机生成一个数字,然后玩家需要猜测这个数字是多少。程序会根据玩家猜测的数字给出相应的提示,直到玩家猜中为止。在这个练习中,我们使用 srand() 函数和 rand() 函数生成随机数,并使用 time() 函数作为随机数的种子。通过循环、条件判断和计数器,实现了猜谜游戏的逻辑。

实例

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

void caizi(void) {
    int n;
    char begin;
    int count = 1;
    srand((unsigned int)time(NULL));
    int m = (rand() % 100) + 1;
    puts("游戏开始,请输入数字:");
    
    while (1) {
        scanf("%d", &n);
        
        if (n == m) {
            printf("猜中了,使用了 %d 次!\n", count);
            
            if (count == 1) {
                printf("你是神级人物了!膜拜\n");
                getchar();
                printf("你已经达到最高级别,还需要玩吗?Y/N \n");
                scanf(" %c", &begin);
                
                if (begin == 'Y' || begin == 'y') {
                    caizi();
                } else {
                    printf("谢谢,再见!\n");
                }
            } else if (count <= 5) {
                printf("你是王级人物了!非常赞\n");
                getchar();
                printf("需要挑战最高级别不?Y/N \n");
                scanf(" %c", &begin);
                
                if (begin == 'Y' || begin == 'y') {
                    caizi();
                } else {
                    printf("谢谢,再见!\n");
                }
            } else if (count <= 10) {
                printf("你是大师级人物了!狂赞\n");
                getchar();
                printf("需要挑战最高级别不?Y/N \n");
                scanf(" %c", &begin);
                
                if (begin == 'Y' || begin == 'y') {
                    caizi();
                } else {
                    printf("谢谢,再见!\n");
                }
            } else if (count <= 15) {
                printf("你是钻石级人物了!怒赞\n");
                getchar();
                printf("需要挑战最高级别不?Y/N \n");
                scanf(" %c", &begin);
                
                if (begin == 'Y' || begin == 'y') {
                    caizi();
                } else {
                    printf("谢谢,再见!\n");
                }
            } else {
                getchar();
                printf("你的技术还有待提高哦!重玩? Y/N\n");
                scanf(" %c", &begin);
                
                if (begin == 'Y' || begin == 'y') {
                    caizi();
                } else {
                    printf("谢谢,再见!\n");
                }
            }
            
            break;
        } else if (n < m) {
            puts("太小了!");
            puts("重新输入:");
        } else {
            puts("太大了!");
            puts("重新输入:");
        }
        
        count++;
    }
}

int main(void) {
    caizi();
    
    return 0;
}

以上实例运行输出结果为:

游戏开始,请输入数字:
50
太大了!
重新输入:
25
太小了!
重新输入:
40
太大了!
重新输入:
30
太大了!
重新输入:
27
太小了!
重新输入:
28
猜中了,使用了 6 次!
你是大师级人物了!狂赞
需要挑战最高级别不?Y/N 
N
谢谢,再见!

在这个猜谜游戏的程序中,我们首先使用 srand() 函数和 rand() 函数生成一个随机数 m,范围是1到100之间。然后,程序会提示玩家输入数字进行猜测,通过 scanf() 函数将输入的数字存储在变量 n 中。程序会根据玩家的猜测给出相应的提示,直到玩家猜中为止。

在程序中,我们使用了循环和条件判断来实现游戏的逻辑。计数器 count 用于记录玩家猜测的次数。根据玩家猜中的次数,程序会给出不同的评价,并询问玩家是否继续挑战更高级别的游戏。如果玩家选择继续挑战,则递归调用 caizi() 函数再次进行游戏,否则程序结束。

注意,在程序中使用 getchar() 函数来消耗输入缓冲区中的换行符,以避免输入的字符被误读。在接收字符输入之前,我们使用空格字符来忽略换行符。

标签: c语言, c语言教程, c语言技术, c语言学习, c语言学习教程, c语言下载, c语言开发, c语言入门教程, c语言进阶教程, c语言高级教程, c语言面试题, c语言笔试题, c语言编程思想, c语言练习, c语言练习题