快乐打码 2022-11-15 19:00 采纳率: 70.6%
浏览 10
已结题

请问我要如何在我现在写的代码的基础上实现游戏结束时所得分数对应输入的数字,即我要怎样在游戏结束时输出输入的数字和对应的分数

任务:编程先由计算机“想”一个1~100之间的数请人猜,游戏者开始猜每一个数时有基本积分100分,猜错一次扣10分。如果人猜对了,在屏幕上输出人猜对此数获得的积分,以此来反映猜数者“猜”的水平,则结束游戏;否则计算机给出提示,告诉人所猜的数是太大还是太小,最多可以猜10次,如果猜了10次仍未猜中的话,积分已经扣完,则停止本次猜数,然后继续猜下一个数。每次运行程序可以反复猜10个数,直到猜完10个数后才结束,游戏最后在屏幕上输出人在猜每个数时得到的相应积分。
我写的代码;

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

int main() {
    int a, b, i, flag = 0, j;
    char next;
    srand(time(0));
    while (1) {
        a = rand() % 100 + 1;
        int count = 100;
        do {
            scanf("%d", &b);
            i++;
            count -= 10;
            if (i % 2 == 0) {
                break;
            }
            if (b > a) {
                printf("Wrong!Too high\n");
            } else if (b < a) {
                printf("Wrong!Too low\n");
            } else {
                printf("right!您当前得分为%d\n", count);
                flag = 1;
                break;
            }
        } while (a != b && b != -1);
        if (flag == 1) {
            break;
        }
        printf("您一共猜了%d次", i);
        printf("输入n结束,其他继续");
        getchar();
        next = getchar();
        if (next == 'n') {
            int count = 100;
            for (j = 0; j < i; j++) {
                count -= 10;
                printf("当您输入%d时,您的得分为%d\n", i, count);
            }
            break;
        }
    }
    return 0;
}

  • 写回答

1条回答 默认 最新

  • honestman_ 2022-11-15 19:08
    关注
    
    #include<stdio.h>
    #include<stdlib.h>
    #include<time.h>
    enum CHOOSE
    {
        EXIT,                            //0
        PLAY                             //1
    };
    void menu()                          //菜单
    {
        printf("********************\n");
        printf("****** 1.play ******\n");
        printf("****** 0.exit ******\n");
        printf("********************\n");
    }
    void game()
    {
        int input = 0;                   //猜的数字
        int pro = 0;                     //电脑给出的随机数
        int count = 0;                   //计数器,计数猜的次数
        srand((unsigned)time(NULL));     //生成随机数
        pro = rand() % 100 + 1;          //生成0-100的随机数
        while (1)
        {
            printf("请猜一个数字:>");
            scanf("%d", &input);
            if (input > pro)
            {
                printf("猜大了\n");
                count++;
            }
            else if (input < pro)
            {
                printf("猜小了\n");
                count++;
            }
            else
            {
                printf("恭喜您!猜对了\n");
                printf("您猜了%d次猜对\n", count + 1);
                break;
            }
        }
    }
    int main()
    {
        int choose = 0;                  //选择玩游戏或者退出
        do
        {
            menu();
            printf("请选择:>");
            scanf("%d", &choose);
            switch (choose)
            {
            case EXIT:
                printf("退出成功!\n");
                break;
            case PLAY:
                game();
                break;
            default:
                printf("选择错误!请重新选择\n");
                break;
            }
        } while (choose);
        system("pause");
        return 0;
    }
    
    
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 11月19日
  • 创建了问题 11月15日

悬赏问题

  • ¥15 而使用UE5引擎的 工具选项里 打开c++ visual studio 就会有部分显示加载失败 如图 加载失败的这张图 请问是什么原因
  • ¥15 mysql 对多个字段模糊查询,返回第一个匹配的字段
  • ¥15 the testing results of the whole dataset is empty
  • ¥15 can问题,往哥解决
  • ¥15 FFmpeg 成功推流到 Nginx RTMP 服务器但无法用 ffplay 或 VLC 播放
  • ¥15 请修改以下C语言代码使其能正确输出最短路径
  • ¥20 抖音商城拉码器安卓报错求解决办法或者有新的拉码脚本也可以介绍一下
  • ¥15 MPLAB IDE V2.35 报错make[2]: *** [build/default/production/_ext/1472/MSSP_I2C.p1] Error 1
  • ¥15 新唐M451 DTMF检测和发送代码修改
  • ¥15 在国外文献网站里点击view pdf 加载异常缓慢甚至加载不出来。