广告广告
  加入我的最爱 设为首页 风格修改
首页 首尾
 手机版   订阅   地图  繁体 
您是第 9940 个阅读者
 
发表文章 发表投票 回覆文章
  可列印版   加为IE收藏   收藏主题   上一主题 | 下一主题   
choan76
数位造型
个人文章 个人相簿 个人日记 个人地图
路人甲
级别: 路人甲 该用户目前不上站
推文 x0 鲜花 x0
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片
推文 x0
[C/C++][求助] C++猜数字游戏
1.是利用乱数产生10~50只间五个不虫负的整数放入阵列中,并将结果白续后显示在表单上。
2.试写猜数字游戏
开始执行时min=0 max=100 输入职内轻成空白,并 ..

访客只能看到部份内容,免费 加入会员 或由脸书 Google 可以看到全部内容



献花 x0 回到顶端 [楼 主] From:未知地址 | Posted:2007-06-26 20:16 |
Inndy
个人文章 个人相簿 个人日记 个人地图
小人物
级别: 小人物 该用户目前不上站
推文 x0 鲜花 x5
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

大概就是这样吧...
不过我不会用MessageBox....
我是初学者~XD
PS:我用的编译器是Dev-C++ 4.9.9.2


复制程式
#include <iostream.h>

int main() {
//初始化变数 
    int min=0,max=100,guess,guess_time=0,stop=0,rand_num=rand()%100+1;
    std::string again; 
    
    cout << "====================" << endl;
    cout << "    C++  猜数字" << endl;
    cout << "====================" << endl << endl; 
    while(stop==0){ 
    cout << " Max=" << max << " ;  Min=" << min << " ;" << endl; 
    cout << "  I Guess :";
    cin  >> guess;
    cout << endl; 
    if(guess==rand_num&&guess_time==0)
        {
        cout << "真厉害!! 一次就猜中!" << endl;
        cout << "另起新局?  (Y/N)" << endl;
        cout << "   ------>";
        cin  >> again;
        if(again=="Y"||again=="y")
            {
            min=0;
            max=100;
            guess_time=0;
            stop=0;
            rand_num=rand()%100+1;
            }
        else
            {
            break; 
            } 
        }
    else if(guess==rand_num) 
        {
        cout << "获胜!!!  您一共猜了" << guess_time << "次!" << endl;
        cout << "另起新局?  (Y/N)" << endl;
        cout << "   ------>";
        cin  >> again;
        if(again=="Y"||again=="y")
            {
            min=0;
            max=100;
            guess_time=0;
            stop=0;
            rand_num=rand()%100+1;
            }
        else
            {
            break; 
            } 
        } 
    else if(guess>rand_num)
        {
        if(guess<max){max=guess;} 
        guess_time++; 
        }
    else if(guess<rand_num)
        {
        if(guess>min){min=guess;}
        guess_time++;
        }
    } 
} 



献花 x0 回到顶端 [1 楼] From:台湾中华电信 | Posted:2010-02-05 20:42 |
翁赐维
个人文章 个人相簿 个人日记 个人地图
路人甲
级别: 路人甲 该用户目前不上站
推文 x0 鲜花 x0
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

这是第一个程式码,第二个我再写看看
你先参考看看吧!! 表情


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

int main()
{
     srand(time(0));            //产生乱数种子
     
     int random[5];

     for(int i=0;i<5;i++)
     {
           random=rand()%50;      //先把乱数存入阵列里
           
           if(random < 10)            //再判断是否再有大于10
                 random=random+10;      //若是小于10,则加上10;
     }

     for(int i=0;i<5;i++)
           cout << random << " ";

     system("pause");
     return 0;
}


献花 x0 回到顶端 [2 楼] From:台湾中华电信 | Posted:2010-02-07 15:32 |
翁赐维
个人文章 个人相簿 个人日记 个人地图
路人甲
级别: 路人甲 该用户目前不上站
推文 x0 鲜花 x0
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

这个是第二个程式码
因为我觉得还满简单的,所以我就没写注解了

另外,你的题目有点看不懂,所以我写的可能跟你要的不一样
表情

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

int main()
{
     srand(time(0));            //产生乱数种子
     int y;
     y=rand()%100;      

     int min=0,max=100,guess;
     int time=0;
     char try_again;

     do
     {
           cout << "*************************" << endl;
           cout << "   c++ 猜数字游戏     " << endl;
           cout << "*************************" << endl;
           cout << "\n";
           
           cout << "输入数字 : ";
           cin >> guess;

           if(guess == y)
           {
                 cout << "一次就答对了 !!" << endl;
                 cout << "Try again ?(y/n) ";
                 cin >> try_again;
           }

           else
           {
                 cout << "再输入一次" << endl;
                 
                 int i=0;
                 
                 for(i=0;i>=0;i++)
                 {
                       cout << "输入数字 : ";
                       cin >> guess;
                       
                       if(guess == y)
                             break;
                       else
                       {
                             if(guess > y)
                             {
                                   cout << "小一点" << endl;
                                   
                                   if(guess < max)
                                         max=guess;
                             
                             }
                             else if(guess < y)
                             {
                                   cout << "大一点" << endl;
                                   
                                   if(guess > min)
                                         min=guess;
                             }

                             cout << "介于" << min << "和" << max << "之间" << endl;
                       }
                 }

                 cout << "你总共输入" << i+2 << "次" << endl;
                 cout << "Try again ?(y/n)";
                 cin >> try_again;
           }

     }while(try_again == 'Y' || try_again == 'y');

     system("pause");
     return 0;
}


献花 x0 回到顶端 [3 楼] From:台湾中华电信 | Posted:2010-02-07 17:21 |
backtolive 手机
个人文章 个人相簿 个人日记 个人地图
路人甲
级别: 路人甲 该用户目前不上站
推文 x0 鲜花 x14
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

2楼的Code有一点点不妥
使用 rand()%50 之后再去判断并不是合理作法
因为虽然说随机,但是按照你的作法10~19的机会比20~50的机会大
10~50 应该使用 10 + rand()%41 随机范围刚好就是10~50

另外也少写了判断不重复的部份
抱歉抄了一下你的Code
复制程式
#include<iostream>
#include<cstdlib>
#include<ctime>
using namespace std;

int main()
{
       srand(time(0));

       int random[5];

       for(int i=0;i<5;i++)
       {
              GetNumber:
              random[i]=10+rand()%41;
              for(int j=0;j<i;j++)
              {
                     if (random[i] == random[j]) goto GetNumber;
              }
       }

       for(int i=0;i<5;i++)
              cout << random[i] << " ";

       system("pause");
       return 0;
}
抱歉使用了非常不好的goto方法
理论上应该使用function call然后加上递回会比较好
不过懒得写了


献花 x0 回到顶端 [4 楼] From:台湾中华电信 | Posted:2010-02-12 10:23 |

首页  发表文章 发表投票 回覆文章
Powered by PHPWind v1.3.6
Copyright © 2003-04 PHPWind
Processed in 0.061906 second(s),query:16 Gzip disabled
本站由 瀛睿律师事务所 担任常年法律顾问 | 免责声明 | 本网站已依台湾网站内容分级规定处理 | 连络我们 | 访客留言