广告广告
  加入我的最爱 设为首页 风格修改
首页 首尾
 手机版   订阅   地图  繁体 
您是第 6943 个阅读者
 
发表文章 发表投票 回覆文章
  可列印版   加为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.087961 second(s),query:16 Gzip disabled
本站由 瀛睿律师事务所 担任常年法律顾问 | 免责声明 | 本网站已依台湾网站内容分级规定处理 | 连络我们 | 访客留言