注册 登录
编程论坛 C++教室

一个简单的猜字游戏

编程2011 发布于 2011-03-30 23:18, 2283 次点击
    随机数的应用
   
程序代码:
#include<iostream>
#include<cstdlib>
#include<ctime>
using namespace std;

int main()
{
    int t;srand(time(0));//产生随机数
    t=(1+rand()%1000);//
    int m=1;
    cout<<"我有一个数从1到1000,你能猜得到我的数字嘛?"<<endl;
    cout<<"请输入你的数: ";
     int n;
    while(m>0)
    {
        cin>>n;
        if(n==t)
            cout<<"很幸运,你猜对了!"<<endl;
        if(n<t)
            cout<<" 太低了,再试一次"<<endl;
        if(n>t)
            cout<<" 太高了,再试一次"<<endl;
    }   
        return 0;
}
11 回复
#2
yuccn2011-03-30 23:55
程序存在好几次不足:
1 是不是应该在猜中了的时候加个break?
2 如果m>0一直为真 就没有必要用这个变量了 直接while (true) 还明确一点
3 没有必要用 if() if () if() 这样的逻辑,用if ()else if() else if()就行了
#3
编程20112011-03-31 22:41
回复 2楼 yuccn
在猜中后,如果你仍想猜,这时跳出程序就没有意义了,另外,break 不能随便用。
#4
yuccn2011-04-01 00:00
要不就继续猜,要不就退出,这个总比在死循环好。你的程序都没有再次产生随机数,猜中了再猜一个已知数字来死循环?

另外,break 不能随便用。??这个是什么道理。。。

而且,没有人说顺不顺便便用,只是说合不合理吧了。

[ 本帖最后由 yuccn 于 2011-4-1 00:03 编辑 ]
#5
yh13366790812011-04-01 11:36
我也觉得无法再次产生随机数十个问题。。。另外我就没什么说的咯。。。对于我这个初学者来说,挺不错的。
#6
编程20112011-04-02 00:12
回复4楼得
srand(time(0)这个语句就是来产生活的随机数的,每次运行都不会有相同的数,你运行下就知道了

[ 本帖最后由 编程2011 于 2011-4-2 00:15 编辑 ]
#7
编程20112011-04-02 00:16
回复 4楼 yuccn

srand(time(0)这个语句就是来产生活的随机数的,每次运行都不会有相同的数,你运行下就知道了

#8
pangding2011-04-02 10:51
回复 7楼 编程2011
yuccn 的意思是说猜中了后再猜还有什么意思。

虽然每次运行出的随机数不一样,但你这个程序即使猜中了也不既出循环。还让人猜同一个数,这很无趣。至少也得再生成一个随机数让人猜吧。
#9
yuccn2011-04-02 14:23
呵呵,还是版主读懂我的意思。难觅。。。
#10
paoshituan2011-04-05 16:41
几点疑惑
<iostream> <cstdlib>           是什么意思
#include <ctime>
srand(time( 0 ));    随机数有范围吧!多少?  t=( 1 +rand()% 1000 )这个应该是限定范围,rand何意? ;
cout << "  " <<endl    见过,但不理解,怎么回事?
#11
pangding2011-04-05 22:53
楼上的没怎么学过 C++ 吧?它和 C 还是有点区别的。

cstdlib 就是 C 里的 stdlib.h。ctime 也是同理。
srand() rand() time() 之类的函数自己去百度一下就行了。

iostream 是用来处理 io 的。和以前的 stdio.h 做差不多的工作,不过输出方法很不一样。
cout 那个就是在输出。有兴趣可以百度一下。

 不过感觉这些都不会,最好还是找本入门的书,稍微看看。
#12
小鱼o号2011-04-09 23:23
LZ如果想要猜对了继续猜的话就用一个goto语句吧,应该可以。
1