引用 | 编辑
Chistduw
2005-10-24 23:38 |
楼主
▼ |
||
x0
老师要我们写一个C++的程式,题目在下面,但是我不知道要怎么撰写,只知道有非常多if和else的条件判断式,期中考就要交了!Q:给你12颗鸡蛋,其中有一颗鸡 .. 访客只能看到部份内容,免费 加入会员 x0
|
引用 | 编辑
唐老鸭
2005-10-25 00:22 |
2楼
▲ ▼ |
这种题目叫做"决策树"....
你可以去参考跟树有关的资料结构应该会讲到... 1楼说的其实就是你要的写法.... 不然上网找应该也一堆... x0 |
引用 | 编辑
sky062012
2005-10-25 00:42 |
3楼
▲ ▼ |
// 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"; } } } } x0 |
引用 | 编辑
Chistduw
2005-11-07 23:28 |
4楼
▲ ▼ |
下面是引用sky062012于2005-10-25 00:42发表的 :不好意思,楼上您所贴出来的程式,并不符合老师的需求,所以算是失败的程式。 老师要求的是坏掉的鸡蛋,是随机产生一颗,不是由我们来决定,然后电脑判断是左边重?一样重?右边重? 再由我们来假设是左边重的话,电脑则判断第二次,左边的重量,以此类推。 一样最多只能测试三次,第四次则是电脑公布答案。 x0 |
引用 | 编辑
codeboy
2005-11-08 00:07 |
5楼
▲ ▼ |
下面是引用Chistduw于2005-11-7 23:28发表的 : sky062012 的程式已经有了大部分的轮廓~要随机的话只要把上面人工输入的部份改成取乱数即可 要四次公布答案也只是加上回圈而已~ 再多自己动手试试~ x0 |