C++项目参考——猜数字游戏

【项目-猜数字游戏】通过本题学习一些系统函数。

  随机产生一个1000内的数字,要求用户猜测这个整数。输入一个猜测想的整数,判断是否与产生的随机数相等,由屏幕显示判断结果。如果猜得不对,给出“大了”或“小了”的提示,直到猜出这个数为止。(可以再加一个要求,猜了几次才得到正确结果。)

参考解答:

#include <iostream>
#include<ctime>
#include<cstdlib>
using namespace std;
int main(void)
{
    int n,num,count=1;
    srand(time(0)); //time(0)返回值作种子
    num=rand()%1000;
    do
    {
        cout<<"猜一个数:";
        cin>>n;
        if(n==num)
            break;
        else if(n>num)
            cout<<"大了!"<<endl;
        else
            cout<<"小了!"<<endl;
        count++;
    }while(true);
    cout<<"历经"<<count<<"次,猜对了。"<<endl;
    return 0;
}

下面是一个被同学们普遍采用的错误版本。在相互的参考当中,以及从网络上找到帮助之中,还要自己学会阅读和分析代码。

我在程序中做了些注释,请同学们思考。在http://blog.csdn.net/u012369599/article/details/16830477中我和那篇文章的主人做了些交流,可参阅。

#include <iostream>
#include<ctime>
#include<cstdlib>
using namespace std;

int main()
{
    int i,n,s,num=0;
    srand(time(0));
    cin>>s;
    for(i=0; i<1; i++) //——这个只能“循环”一次,i++之后i<1将为假,何用?
    {
        n=rand()%1000;
        while(s>n)  //如果猜的数一直偏大,就这样处理,似乎还有理
        {
            cout<<"你输大了,再小一点!"<<endl;
            cin>>s;
            num++;
        }
        while(s<n)  //猜小了将落入这个循环。可是,再猜大了呢?
        {
            cout<<"你输小了,再大一点!"<<endl;
            cin>>s;
            num++;
        }  //两趟while循环下来,只能“单向”的太大或太小,多运行两次你会发现,猜小了之后只要再猜大一次了,一定说正确。
    }
    cout<<"恭喜你,输入正确"<<"共输入"<<num<<"次"<<endl;
    return 0;
}


评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

迂者-贺利坚

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值