廣告廣告
  加入我的最愛 設為首頁 風格修改
首頁 首尾
 手機版   訂閱   地圖  簡體 
您是第 9670 個閱讀者
04:00 ~ 4:30 資料庫備份中,需等較久的時間,請耐心等候
 
發表文章 發表投票 回覆文章
  可列印版   加為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.018829 second(s),query:16 Gzip disabled
本站由 瀛睿律師事務所 擔任常年法律顧問 | 免責聲明 | 本網站已依台灣網站內容分級規定處理 | 連絡我們 | 訪客留言