第四周上机实践项目——项目3-随机数函数应用于游戏

本文介绍了一个使用随机数的游戏程序,包含两个部分:一是猜数字游戏,随机生成一个1000以内的数字让用户猜测;二是数学计算游戏,生成10道100以内四则运算题目供用户解答,并统计正确率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/*
 *Copyright (c)2016,烟台大学计算机与控制工程学院
 *All rights reserved.
 *文件名称:main.cpp
 *作    者:郭永恒
 *完成日期:2016年3月19日
 *版 本 号:v1.0
 *
 *问题描述:随机数应用于游戏
 *(1):随机产生一个1000以内的数字,要求用户猜测这个数字,根据猜测结果,输出“大了”或“小了”的提示,直到猜出这个数为止
 *(2):随机生成十道100以内加减乘除的题目,练习者输入答案,程序根据输入的答案判断对错,最后显示作对了几道题
 *输入描述:输入用户猜测或计算结果
 *输出描述:根据题目输出相应结果
 */

//问题(1)
#include <iostream>
#include <ctime>
#include <cstdlib>
using namespace std;

int main()
{
    srand(time(NULL));
    int us = 0;
    int num = 0;
    int count = 1;
    num = rand()%1000;
    for(;;)
    {
        cin >> us;
        if(num == us)
            break;
        if(num > us)
        {
            cout << "小了" << endl;
            count++;
        }
        else
        {
            cout << "大了" << endl;
            count++;
        }
    }
    cout << "共猜测" << count << "次得到正确结果" << endl;
    return 0;
}

运行结果:


//问题(2)
#include<cstdio>
#include<ctime>
#include<cstdlib>

int main()
{
   int iProcount = 1;
   int iResultCount = 0;
   int iTrueResult = 0;
   int iInputResult = 0;
   srand(time(NULL));
   int iJudge = 0;
   while(iProcount <= 10)
   {
       iJudge = rand()%4;
       printf("第%d题:\n",iProcount);
       int iOne = rand()%100;
       int iTwo = rand()%100;
       if(iJudge == 0)
       {
           iTrueResult = iOne + iTwo;
           printf("%d+%d=",iOne,iTwo);
       }
       else if(iJudge == 1)
       {
           iTrueResult = iOne - iTwo;
           printf("%d-%d=",iOne,iTwo);
       }
       else if(iJudge == 2)
       {
           here: iTrueResult = iOne * iTwo;
           if(iOne*iTwo > 0)
           {
               iOne = rand()%100;
               iTwo = rand()%100;
               goto here;
           }
           printf("%d×%d=",iOne,iTwo);
       }
       else if(iJudge == 3)
       {
           there: iTrueResult = iOne / iTwo;
           if(iOne%iTwo != 0)
           {
               iOne = rand()%100;
               iTwo = rand()%100;
               goto there;
           }
           printf("%d÷%d=",iOne,iTwo);
       }
       scanf("%d",&iInputResult);
       if(iInputResult == iTrueResult)
       {
           printf("right!\n");
           iResultCount++;
       }
       else
           printf("wrong!\n");
       iProcount++;
   }
   printf("共答对了%d道题,得分%d",iResultCount,iResultCount*10);
   return 0;
}

运行结果:



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值