📄 aiyst.cpp
字号:
/*题目
有五个具有五种不同颜色的房间;每个房间里分别住着一个不同国籍的人;
每个人都在喝一种特定品牌的饮料,抽一特定品牌的香烟,养一特定的宠物;
没有任意两个人在抽相同品牌的香烟,或喝相同品牌的饮料,或养相同的宠物。
爱因斯坦给出了如下线索
1.英国人住在红色的房子里;f_hong==g_ying
f_hong==g_ying&&g_rui==c_gou&&g_dan==y_cha&&f_lv==(f_bai-1)&&f_lv==y_ca&&x_pa==c_niao&&f_huang==x_du&&\
y_niu==3&&f_nuo==1&&x_ble==(c_mao+1)||x_ble==(c_mao-1)&&c_ma==(x_du+1)||c_ma==(x_du-1)&&x_blu==y_pi&&\
g_de==x_pr&&f_lan==2&&x_ble==(y_kuang+1)||x_ble==(y_kuang-1)
2.瑞典人养狗作为宠物;g_rui==c_gou
3.丹麦人喝茶;g_dan==y_cha
4.绿房子紧挨着白房子,在白房子的左边;f_lv==(f_bai-1)
5.绿房子的主人喝咖啡;f_lv==y_ca
6.抽 Pall Mall 牌香烟的人养鸟;x_pa==c_niao
7.黄色房子里的人抽 Dunhill 牌香烟;f_huang==x_du
8.住在中间那个房子里的人喝牛奶;y_niu==3
9.挪威人住在第一个房子里(最左边);f_nuo==1
10.抽 Blends 香烟的人和养猫的人相邻;x_ble==(c_mao+1)||x_ble==(c_mao-1)
11.养马的人和抽 Dunhill 牌香烟的人相邻;c_ma==(x_du+1)||c_ma==(x_du-1)
12.抽 BlueMaster 牌香烟的人喝啤酒;x_blu==y_pi
13.德国人抽 Prince 牌香烟;g_de==x_pr
14.挪威人和住蓝房子的人相邻;f_lan==2
15.抽Blends 香烟的人和喝矿泉水的人相邻;x_ble==(y_kuang+1)||x_ble==(y_kuang-1)
爱因斯坦的问题是:谁在养鱼作为宠物?
*/
#include "stdio.h"
#include "string.h"
void main(void)
{
int g_ying,g_de,g_dan,g_nuo,g_rui;//为国籍设置变量;
int y_cha,y_ca,y_pi,y_kuang,y_niu;//为饮料设置变量;
int f_hong,f_bai,f_huang,f_lan,f_lv;//为房子设置变量;
int x_pa,x_du,x_ble,x_blu,x_pr;//为香烟设置变量;
int c_gou,c_mao,c_ma,c_yu,c_niao;//为宠物设置变量;
//设置变量存储国籍、宠物、房子、饮料、香烟的名称;
int i;
char g[6][6];
char c[6][3];
char f[6][6];
char y[6][7];
char x[6][12];
printf("\n\n\t%s\t%s\t%s\t%s\t%s\t%s\n\n","序 号","国 籍","房 子","饮 料","香 烟 "," 宠 物");
g_nuo=1;
for(g_ying=2;g_ying<6;g_ying++)
{
if(g_ying==g_nuo)continue;
for(g_rui=2;g_rui<6;g_rui++)
{
if(g_rui==g_nuo||g_rui==g_ying)continue;
for(g_dan=2;g_dan<6;g_dan++)
{
if(g_dan==g_nuo||g_dan==g_ying||g_dan==g_rui)continue;
for(g_de=2;g_de<6;g_de++)
{
if(g_de==g_nuo||g_de==g_ying||g_de==g_rui||g_de==g_dan)continue;
//以上为国家分配
y_niu=3;
y_cha=g_dan;
if(y_cha==3)continue;
for(y_ca=1;y_ca<6;y_ca++)
{
if(y_ca==y_cha||y_ca==y_niu)continue;
for(y_pi=1;y_pi<6;y_pi++)
{
if(y_pi==y_cha||y_pi==y_niu||y_pi==y_ca)continue;
for(y_kuang=1;y_kuang<6;y_kuang++)
{
if(y_kuang==y_cha||y_kuang==y_niu||y_kuang==y_ca||y_kuang==y_pi)continue;
//以上为饮料分配
f_lan=2;
f_hong=g_ying;
if(f_hong==f_lan)continue;
f_lv=y_ca;
if(f_lv==f_hong||f_lv==f_lan)continue;
f_bai=f_lv+1;
if(f_bai<1||f_bai>5)continue;
if(f_bai==f_hong||f_bai==f_lv||f_bai==f_lan)continue;
for(f_huang=1;f_huang<6;f_huang++)
{
if(f_huang==f_hong||f_huang==f_lv||f_huang==f_bai||f_huang==f_lan)continue;
//以上为房子分配
x_du=f_huang;
x_blu=y_pi;
if(x_blu==x_du)continue;
x_pr=g_de;
if(x_pr==x_blu||x_pr==x_du)continue;
for(x_ble=y_kuang-1;x_ble<y_kuang+2;x_ble+=2)
{
if(x_ble<1||x_ble>5)continue;
if(x_ble==x_du||x_ble==x_blu||x_ble==x_pr)continue;
for(x_pa=1;x_pa<6;x_pa++)
{
if(x_pa==x_du||x_pa==x_blu||x_pa==x_pr||x_pa==x_ble)continue;
//以上为香烟分配
c_gou=g_rui;
c_niao=x_pa;
if(c_niao==c_gou)continue;
for(c_mao=x_ble-1;c_mao<x_ble+2;c_mao+=2)
{
if(c_mao<1||c_mao>5)continue;
if(c_mao==c_gou||c_mao==c_niao)continue;
for(c_ma=x_du-1;c_ma<x_du+2;c_ma+=2)
{
if(c_ma<1||c_ma>5)continue;
if(c_ma==c_gou||c_ma==c_niao||c_ma==c_mao)continue;
for(c_yu=1;c_yu<6;c_yu++)
{
if(c_yu==c_gou||c_yu==c_niao||c_yu==c_mao||c_yu==c_ma)continue;
//以上为宠物分配;
// 用相应位置的变量存储国籍、宠物等的名称;
strcpy(g[g_ying],"英 国");
strcpy(g[g_de],"德 国");
strcpy(g[g_dan],"丹 麦");
strcpy(g[g_nuo],"挪 威");
strcpy(g[g_rui],"瑞 典");
strcpy(c[c_gou],"狗");
strcpy(c[c_mao],"猫");
strcpy(c[c_ma],"马");
strcpy(c[c_niao],"鸟");
strcpy(c[c_yu],"鱼");
strcpy(y[y_ca],"咖 啡");
strcpy(y[y_cha]," 茶 ");
strcpy(y[y_niu],"牛 奶");
strcpy(y[y_kuang],"矿泉水");
strcpy(y[y_pi],"啤 酒");
strcpy(f[f_hong],"红 色");
strcpy(f[f_bai],"白 色");
strcpy(f[f_huang],"黄 色");
strcpy(f[f_lan],"蓝 色");
strcpy(f[f_lv],"绿 色");
strcpy(x[x_du],"Dunhill ");
strcpy(x[x_ble],"Blends ");
strcpy(x[x_blu],"BlueMaster ");
strcpy(x[x_pr],"Prince ");
strcpy(x[x_pa],"Pall Mall ");
//屏幕输出;
for(i=1;i<6;i++)
{
printf("\t%3d\t%s\t%s\t%s\t%s\t%s\n\n",i,g[i],f[i],y[i],x[i],c[i]);
}
getchar();
}
}
}
}
}
}
}
}
}
}
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -