網域名稱俱樂部


返回   網域名稱俱樂部 > 電腦與網路技術 > 電腦網路相關技術 > 一般軟體與網路使用討論
論壇幫助 社區 日曆事件 今日新文章 搜尋

回覆
 
主題工具
  #1  
舊 2015-09-12, 01:21 PM
哈啦 的頭像
哈啦 哈啦 目前離線
論壇管理員
 
註冊日期: 2002-05-28
文章: 23,055
預設 算四大湖大小以及bool的問題

網路有一個求四大湖排名的問題如下:
引用:
我国有4大淡水湖。
A说:洞庭湖最大,洪泽湖最小,鄱阳湖第三。
B说:洪泽湖最大,洞庭湖最小,鄱阳湖第二,太湖第三。
C说:洪泽湖最小,洞庭湖第三。
D说:鄱阳湖最大,太湖最小,洪泽湖第二,洞庭湖第三。
已知这4个湖的大小均不相等,4个人每人仅答对一个,
请编程按照鄱阳湖、洞庭湖、太湖、洪泽湖的顺序给出他们的大小排名。
我參考了網上的方法寫了如下的程式:

#include <iostream>
using namespace std;

int main(void){

int dt=0,hz=0,by=0,th=0;
int a=0,b=0,c=0,d=0;
//bool a=0,b=0,c=0,d=0;換成bool型態


for(dt=1;dt<=4;dt++){
for(hz=1;hz<=4;hz++){
for(by=1;by<=4;by++){
for(th=1;th<=4;th++)
{
//if((dt==by)||(dt==hz)||(dt==th)||(by==hz)||(by==th)||(hz==th)) continue;
a=((dt==1)+(hz==4)+(by==3));
b=((hz==1)+(dt==4)+(by==2)+(th==3));
c=((hz==4)+(dt==3));
d=((by==1)+(th==4)+(hz==2)+(dt==3));
if((a*b*c*d==1)&&(dt!=by)&&(dt!=th)&&(dt!=hz)&&(by!=hz)&&(by!=th)&&(hz!=th)) {

cout<<"DT is "<<dt<<" and BY is "<<by<<" and TH is "<<th<<" and HZ is "<<hz<<endl;

}
}
}
}
}
return 0;
}

以上的方法確實可以得出一組解答,但怪的是,如果我把紅字的部份變成 bool 型態,則以上的方法會得出二組答案?為何會如此?

thanks 先
__________________
咖啡走路
微博


您是網站站長嗎?歡迎到站長俱樂部 一起討論吧。
按我看版規
code.club
回覆時引用此篇文章
回覆


發文規則
不可以發表新主題
不可以發表回覆
不可以上傳附件
不可以編輯自己的文章

啟用 BB 代碼
論壇啟用 表情符號
論壇啟用 [IMG] 代碼
論壇禁用 HTML 代碼



所有時間均為 +8。現在的時間是 04:38 PM


本站主機由網易虛擬主機代管
Powered by vBulletin® 版本 3.8.4
版權所有 ©2000 - 2024,Jelsoft Enterprises Ltd.