廣告廣告
  加入我的最愛 設為首頁 風格修改
首頁 首尾
 手機版   訂閱   地圖  簡體 
您是第 6937 個閱讀者
 
發表文章 發表投票 回覆文章
  可列印版   加為IE收藏   收藏主題   上一主題 | 下一主題   
Chistduw 手機
個人頭像
個人文章 個人相簿 個人日記 個人地圖
小人物
級別: 小人物 該用戶目前不上站
推文 x0 鮮花 x18
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片
推文 x0
[C/C++] 期中考的C++題目
老師要我們寫一個C++的程式,題目在下面,但是我不知道要怎麼撰寫,只知道有非常多if和else的條件判斷式,期中考就要交了!

Q:給你12顆雞蛋,其中有一顆雞 ..

訪客只能看到部份內容,免費 加入會員 或由臉書 Google 可以看到全部內容



獻花 x0 回到頂端 [樓 主] From:台灣中華電信 | Posted:2005-10-24 23:38 |
ellington 手機
數位造型
個人文章 個人相簿 個人日記 個人地圖
初露鋒芒
級別: 初露鋒芒 該用戶目前不上站
推文 x1 鮮花 x16
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

第一次是一邊6個
第二次取重的那6個,一邊 3個
第三次剩下的3個取兩個,如果一樣重就是剩下的那個


獻花 x0 回到頂端 [1 樓] From:台灣亞太線上 | Posted:2005-10-25 00:05 |
唐老鴨
個人頭像
個人文章 個人相簿 個人日記 個人地圖
初露鋒芒
級別: 初露鋒芒 該用戶目前不上站
推文 x1 鮮花 x230
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

這種題目叫做"決策樹"....
你可以去參考跟樹有關的資料結構應該會講到...
1樓說的其實就是你要的寫法....
不然上網找應該也一堆...


沒東西可以抓
獻花 x0 回到頂端 [2 樓] From:美國 | Posted:2005-10-25 00:22 |
sky062012 手機
數位造型
個人文章 個人相簿 個人日記 個人地圖
小人物
級別: 小人物 該用戶目前不上站
推文 x0 鮮花 x4
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

// 132.cpp : 定義主控台應用程式的進入點。
//

#include "stdafx.h"
#include<iostream>
using namespace std;
void main(int argc, _TCHAR* argv[])
{
    int x1=0;
    int x2=0;
    int x3=0;
    int x4=0;
    int x5=0;
    int x6=0;
    int x7=0;
    int x8=0;
    int x9=0;
    int x10=0;
    int x11=0;
    int x12=0;
    int y;
    cout<<"請輸入一個數字,這個數字將會是你的謎底唷\n";
    cin>>y;
    y=y-1;
    y=y%12+1;
    cout<<y<<"\n"<<"上面那個數字是謎底唷\n";
    if(y==1)
    {
        x1=x1+1;
    }
    else if(y==2)
    {
        x2=x2+1;
    }
    else if(y==3)
    {
        x3=x3+1;
    }
    else if(y==4)
    {
        x4=x4+1;
    }
    else if(y==5)
    {
        x5=x5+1;
    }
    else if(y==6)
    {
        x6=x6+1;
    }
    else if(y==7)
    {
        x7=x7+1;
    }
    else if(y==8)
    {
        x8=x8+1;
    }
    else if(y==9)
    {
        x9=x9+1;
    }
    else if(y==10)
    {
        x10=x10+1;
    }
    else if(y==11)
    {
        x11=x11+1;
    }
    else if(y==12)
    {
        x12=x12+1;
    }
    //以上是白癡的程式,可以不用學。
    cout<<"現在電腦要開始找數字了唷\n";
    int a,b,c;
    a=x1+x2+x3+x4;
    b=x5+x6+x7+x8;
    c=x9+x10+x11+x12;
    if(a==b)
    {
        cout<<"現在做第一次判別唷,\n"<<"比較1,2,3,4跟5,6,7,8哪邊重\n";
        cout<<"比較結果:1,2,3,4跟5,6,7,8一樣大,問題數字在9,10,11,12\n";
        if(x9+x10>=x11+x12)
        {
              cout<<"做出第二次判別,\n"<<"比較9,10跟11,12哪邊重\n";
              cout<<"比較結果:9,10比較重\n"<<"問題數字在9,10\n";
              if(x9>=x10)
              {
                  cout<<"做出第三次判別,\n"<<"比較9,10哪邊重\n";
                  cout<<"比較結果:9比較重。\n"<<"問題數字是:9。";
              }
              else
              {
                  cout<<"做出第三次判別,\n"<<"比較9,10哪邊重\n";
                  cout<<"比較結果:10比較重。\n"<<"問題數字是:10。";
              }
        }
        else
        {
              cout<<"做出第二次判別,\n"<<"比較9,10跟11,12哪邊重\n";
              cout<<"比較結果:11,12比較重\n"<<"問題數字在11,12\n";
              if(x11>=x12)
              {
                  cout<<"做出第三次判別,\n"<<"比較11,12哪邊重\n";
                  cout<<"比較結果:11比較重。\n"<<"問題數字是:11。";
              }
              else
              {
                  cout<<"做出第三次判別,\n"<<"比較11,12哪邊重\n";
                  cout<<"比較結果:12比較重。\n"<<"問題數字是:12。";
              }
        }
    }

        else if(a>=b)
    {
        cout<<"現在做第一次判別唷,\n"<<"比較1,2,3,4跟5,6,7,8哪邊重\n";
        cout<<"比較結果:1,2,3,4比5,6,7,8重,問題數字在1,2,3,4\n";
        if(x1+x2>=x3+x4)
        {
              cout<<"做出第二次判別,\n"<<"比較1,2跟3,4哪邊重\n";
              cout<<"比較結果:1,2比較重\n"<<"問題數字在1,2\n";
              if(x1>=x2)
              {
                  cout<<"做出第三次判別,\n"<<"比較1,2哪邊重\n";
                  cout<<"比較結果:1比較重。\n"<<"問題數字是:1。";
              }
              else
              {
                  cout<<"做出第三次判別,\n"<<"比較1,2哪邊重\n";
                  cout<<"比較結果:2比較重。\n"<<"問題數字是:2。";
              }
        }
        else
        {
              cout<<"做出第二次判別,\n"<<"比較1,2跟3,4哪邊重\n";
              cout<<"比較結果:3,4比較重\n"<<"問題數字在3,4\n";
              if(x3>=x4)
              {
                  cout<<"做出第三次判別,\n"<<"比較3,4哪邊重\n";
                  cout<<"比較結果:3比較重。\n"<<"問題數字是:3。";
              }
              else
              {
                  cout<<"做出第三次判別,\n"<<"比較3,4哪邊重\n";
                  cout<<"比較結果:4比較重。\n"<<"問題數字是:4。";
              }
        }
    }

        else if(a<=b)
    {
        cout<<"現在做第一次判別唷,\n"<<"比較1,2,3,4跟5,6,7,8哪邊重\n";
        cout<<"比較結果:1,2,3,4比5,6,7,8輕,問題數字在5,6,7,8\n";
        if(x5+x6>=x7+x8)
        {
              cout<<"做出第二次判別,\n"<<"比較5,6跟7,8哪邊重\n";
              cout<<"比較結果:5,6比較重\n"<<"問題數字在5,6\n";
              if(x5>=x6)
              {
                  cout<<"做出第三次判別,\n"<<"比較5,6哪邊重\n";
                  cout<<"比較結果:5比較重。\n"<<"問題數字是:5。";
              }
              else
              {
                  cout<<"做出第三次判別,\n"<<"比較5,6哪邊重\n";
                  cout<<"比較結果:6比較重。\n"<<"問題數字是:6。";
              }
        }
        else
        {
              cout<<"做出第二次判別,\n"<<"比較5,6跟7,8哪邊重\n";
              cout<<"比較結果:7,8比較重\n"<<"問題數字在7,8\n";
              if(x7>=x8)
              {
                  cout<<"做出第三次判別,\n"<<"比較7,8哪邊重\n";
                  cout<<"比較結果:7比較重。\n"<<"問題數字是:7。";
              }
              else
              {
                  cout<<"做出第三次判別,\n"<<"比較7,8哪邊重\n";
                  cout<<"比較結果:8比較重。\n"<<"問題數字是:8。";
              }
        }
    }
    cout<<"這個煩人的程式終於結束了,真是可喜可賀。\n";
}

=============================================================

上面那個沒用陣列寫出來的白痴程式,下面用陣列寫出來的白痴程式

=============================================================

// 132.cpp : 定義主控台應用程式的進入點。
//

#include "stdafx.h"
#include<iostream>
using namespace std;
void main(int argc, _TCHAR* argv[])
{
   
   
    int y ;
   
    int a[13]={0,0,0,0,0,0,0,0,0,0,0,0,0};
   
    cout<<"請輸入一個數字,這個數字將會是你的謎底唷\n";
    cin>>y;
    y=y-1;
    y=y%12+1;
    cout<<y<<"\n"<<"上面那個數字是謎底唷\n";
    a[y]=1;
    cout<<"現在電腦要開始找數字了唷\n";

    if(a[1]+a[2]+a[3]+a[4]+a[5]+a[6]>=a[7]+a[8]+a[9]+a[10]+a[11]+a[12])
    {
        cout<<"第一次比較\n";
        cout<<"1~6比7~12重\n";
        if(a[1]+a[2]+a[3]>=a[4]+a[5]+a[6])
        {
              cout<<"第二次比較\n";
              cout<<"1~3比4~6重\n";
              if(a[1]==a[2])
              {
                  cout<<"第三次比較\n";
                  cout<<"1=2\n";
                  cout<<"3為問題數字\n";
              }
              else if(a[1]>=a[2])
              {
                  cout<<"第三次比較\n";
                  cout<<"1>2\n";
                  cout<<"1為問題數字\n";
              }
              else if(a[1]<=a[2])
              {
                  cout<<"第三次比較\n";
                  cout<<"1<2\n";
                  cout<<"2為問題數字\n";
              }
             
        }
        else if(a[1]+a[2]+a[3]<=a[4]+a[5]+a[6])
        {
              cout<<"第二次比較\n";
              cout<<"1~3比4~6輕\n";
              if(a[4]==a[5])
              {
                  cout<<"第三次比較\n";
                  cout<<"4=5\n";
                  cout<<"6為問題數字\n";
              }
              else if(a[4]>=a[5])
              {
                  cout<<"第三次比較\n";
                  cout<<"4>5\n";
                  cout<<"4為問題數字\n";
              }
              else if(a[4]<=a[5])
              {
                  cout<<"第三次比較\n";
                  cout<<"4<5\n";
                  cout<<"5為問題數字\n";
              }
        }
    }
    else if(a[1]+a[2]+a[3]+a[4]+a[5]+a[6]<=a[7]+a[8]+a[9]+a[10]+a[11]+a[12])
    {
        cout<<"第一次比較\n";
        cout<<"1~6比7~12輕\n";
        if(a[7]+a[8]+a[9]>=a[10]+a[11]+a[12])
        {
              cout<<"第二次比較\n";
              cout<<"7~9比8~12重\n";
              if(a[7]==a[8])
              {
                  cout<<"第三次比較\n";
                  cout<<"7=8\n";
                  cout<<"9為問題數字\n";
              }
              else if(a[7]>=a[8])
              {
                  cout<<"第三次比較\n";
                  cout<<"7>8\n";
                  cout<<"7為問題數字\n";
              }
              else if(a[7]<=a[8])
              {
                  cout<<"第三次比較\n";
                  cout<<"7<8\n";
                  cout<<"8為問題數字\n";
              }
        }
        else if(a[7]+a[8]+a[9]<=a[10]+a[11]+a[12])
        {
              cout<<"第二次比較\n";
              cout<<"7~9比10~12輕\n";
              if(a[10]==a[11])
              {
                  cout<<"第三次比較\n";
                  cout<<"10=11\n";
                  cout<<"12為問題數字\n";
              }
              else if(a[10]>=a[11])
              {
                  cout<<"第三次比較\n";
                  cout<<"10>11\n";
                  cout<<"10為問題數字\n";
              }
              else if(a[10]<=a[11])
              {
                  cout<<"第三次比較\n";
                  cout<<"10<11\n";
                  cout<<"11為問題數字\n";
              }
             
        }
    }
}


[ 此文章被sky062012在2005-10-25 01:40重新編輯 ]


獻花 x0 回到頂端 [3 樓] From:台灣中華電信 | Posted:2005-10-25 00:42 |
Chistduw 手機
個人頭像
個人文章 個人相簿 個人日記 個人地圖
小人物
級別: 小人物 該用戶目前不上站
推文 x0 鮮花 x18
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

下面是引用sky062012於2005-10-25 00:42發表的 :
// 132.cpp : 定義主控台應用程式的進入點。
//

#include "stdafx.h"
#include<iostream>
.......
不好意思,樓上您所貼出來的程式,並不符合老師的需求,所以算是失敗的程式。
老師要求的是壞掉的雞蛋,是隨機產生一顆,不是由我們來決定,然後電腦判斷是左邊重?一樣重?右邊重?
再由我們來假設是左邊重的話,電腦則判斷第二次,左邊的重量,以此類推。
一樣最多只能測試三次,第四次則是電腦公佈答案。


獻花 x0 回到頂端 [4 樓] From:台灣中華電信 | Posted:2005-11-07 23:28 |
codeboy 手機
個人文章 個人相簿 個人日記 個人地圖
社區建設獎
小有名氣
級別: 小有名氣 該用戶目前不上站
推文 x6 鮮花 x331
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

下面是引用Chistduw於2005-11-7 23:28發表的 :

不好意思,樓上您所貼出來的程式,並不符合老師的需求,所以算是失敗的程式。
老師要求的是壞掉的雞蛋,是隨機產生一顆,不是由我們來決定,然後電腦判斷是左邊重?一樣重?右邊重?
再由我們來假設是左邊重的話,電腦則判斷第二次,左邊的重量,以此類推。
一樣最多只能測試三次,第四次則是電腦公佈答案。

sky062012 的程式已經有了大部分的輪廓~要隨機的話只要把上面人工輸入的部份改成取亂數即可
要四次公佈答案也只是加上迴圈而已~

再多自己動手試試~ 表情



連結有問題請來信,我會盡快修正~^^
通報時請附上是"哪一篇失效"...這樣我才能去修正~麻煩各位好心人士了~

[連結失效通報][ 網頁.伺服.程式 討論區]
----------------------在世界中心呼喊愛情----------------------
深深思念一個人的時候,我們不知不覺的地活在世界的中心...
獻花 x0 回到頂端 [5 樓] From:台灣中華電信 | Posted:2005-11-08 00:07 |
唐老鴨
個人頭像
個人文章 個人相簿 個人日記 個人地圖
初露鋒芒
級別: 初露鋒芒 該用戶目前不上站
推文 x1 鮮花 x230
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

下面是引用Chistduw於2005-11-7 23:28發表的 :

不好意思,樓上您所貼出來的程式,並不符合老師的需求,所以算是失敗的程式。
老師要求的是壞掉的雞蛋,是隨機產生一顆,不是由我們來決定,然後電腦判斷是左邊重?一樣重?右邊重?
再由我們來假設是左邊重的話,電腦則判斷第二次,左邊的重量,以此類推。
一樣最多只能測試三次,第四次則是電腦公佈答案。

上面的程式我會建議你把它改寫成遞迴的模式....
會更有彈性....


沒東西可以抓
獻花 x0 回到頂端 [6 樓] From:美國 | Posted:2005-11-08 01:00 |
rakish
數位造型
個人文章 個人相簿 個人日記 個人地圖
初露鋒芒
級別: 初露鋒芒 該用戶目前不上站
推文 x0 鮮花 x18
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

這種問題要用三元樹來解

以 12 為例
123456789abc

假設 8比較重
第一次
1234 vs 9abc 一樣重表示:5678 <--有一壞且1234與9abc皆正確
第二次
56 vs 12 一樣重表示 壞的是 78
第三次
7 vs 1 一樣重表示 8為壞

以9比較輕為例
第一次
1234 vs 9abc 左邊重表示:5678 正確 1234或9abc有一壞
第二次
1234 vs 5678 一樣重表示 壞的是 9abc
第三次
12 vs 9a 左邊重 表示 9a有一壞且較輕
第四次
1 vs 9 左邊重 表示 9壞且較輕


人一但長大了
就發現世上的事不像想的那麼好
你總是會一天天長大的
會看得越來越清楚
獻花 x0 回到頂端 [7 樓] From:台灣 | Posted:2006-01-28 21:14 |

首頁  發表文章 發表投票 回覆文章
Powered by PHPWind v1.3.6
Copyright © 2003-04 PHPWind
Processed in 0.082106 second(s),query:16 Gzip disabled
本站由 瀛睿律師事務所 擔任常年法律顧問 | 免責聲明 | 本網站已依台灣網站內容分級規定處理 | 連絡我們 | 訪客留言