user-0 提问: 求指教 一道逻辑题  如何用C语言程序解决

回复:
user: user-1
content: 简化版：//爱因斯坦难题,C语言数组实现 //提示： //   1、英国人住红色房子 //   2、瑞典人养狗 //   3、丹麦人喝茶 //   4、绿色房子在白色房子左面 //   5、绿色房子主人喝咖啡 //   6、抽PALL MALL香烟的人养鸟 //   7、黄色房子的主人抽DUNIILL香烟 //   8、住在中间房子的人喝牛奶 //   9、挪威人住第一间房 //  10、抽BLENDS香烟的人住在养猫人的隔壁 //  11、养马的人住在抽DUNHILL香烟的人隔壁 //  12、抽BLUE MASTER的人喝啤酒 //  13、德国人抽PRINCE的香烟 //  14、挪威人住蓝色房子的隔壁 //  15、抽BLENDS香烟的人有一个喝水的邻居 //    那谁是养鱼的呢？ #include <stdio.h> #include <locale.h> #define N 5 int a[N]; int b[120][5];//存放5!全排列情况 int num=0; int sum=1; void swap(int i, int offset) {     int temp;     temp=a[offset];     a[offset]=a[i];     a[i]=temp; } void print() {     int i;     for (i=0;i<N;i++) b[num][i]=a[i];     num++; } void perm(int offset) {     int i;     if (offset==N-1) {         print();         return;     }     for (i=offset;i<N;i++)  {         swap(i,offset);         perm(offset+1);         swap(i,offset);     } } int main() {     int i,k,r1,r2,r3,r4,r5;     int c[5][5]={0};//数组c记录了表格中按照每行国色烟饮宠，每列12345号房     int cou[6]={0}; //数组cou记录了每个国家的人入住的房号，顺序见下面的注释     int col[6]={0}; //数组col记录了每个颜色的房号，顺序见下面的注释     int cig[6]={0}; //数组cig记录了每个烟的房号，顺序见下面的注释     int dri[6]={0}; //数组dri记录了每个饮料的房号，顺序见下面的注释     int pet[6]={0}; //数组pet记录了每个宠物的房号，顺序见下面的注释      setlocale(LC_ALL,"chs");     for(i=0;i<N;i++) a[i]=i+1;     perm(0);     /*Einstein Problem        Country:  England ,Switzerland,Danmark,Germany   ,Norway          Color:  Red     ,Green      ,White  ,Yellow    ,Blue      Cigarette:  PallMall,Dunhill    ,Blends ,BlueMaster,Prince          Drink:  Tea     ,Coffee     ,Beer   ,Water     ,Milk            Pet:  Dog     ,Bird       ,Fish   ,Cat       ,Horse     */     for (r1=0;r1<120;r1++) {         if (b[r1][0]!=5) continue; //挪威人不住第一间房，退出         c[0][0]=b[r1][0];cou[c[0][0]]=1;         c[1][0]=b[r1][1];cou[c[1][0]]=2;         c[2][0]=b[r1][2];cou[c[2][0]]=3;         c[3][0]=b[r1][3];cou[c[3][0]]=4;         c[4][0]=b[r1][4];cou[c[4][0]]=5;     for (r2=0;r2<120;r2++) {         if (b[r2][1]!=5) continue; //挪威人隔壁不是蓝色房子，退出         c[0][1]=b[r2][0];col[c[0][1]]=1;         c[1][1]=b[r2][1];col[c[1][1]]=2;         c[2][1]=b[r2][2];col[c[2][1]]=3;         c[3][1]=b[r2][3];col[c[3][1]]=4;         c[4][1]=b[r2][4];col[c[4][1]]=5;     for (r3=0;r3<120;r3++) {         c[0][2]=b[r3][0];cig[c[0][2]]=1;         c[1][2]=b[r3][1];cig[c[1][2]]=2;         c[2][2]=b[r3][2];cig[c[2][2]]=3;         c[3][2]=b[r3][3];cig[c[3][2]]=4;         c[4][2]=b[r3][4];cig[c[4][2]]=5;     for (r4=0;r4<120;r4++) {         if (b[r4][2]!=5) continue; //住在中间房子的人不是喝牛奶，退出         c[0][3]=b[r4][0];dri[c[0][3]]=1;         c[1][3]=b[r4][1];dri[c[1][3]]=2;         c[2][3]=b[r4][2];dri[c[2][3]]=3;         c[3][3]=b[r4][3];dri[c[3][3]]=4;         c[4][3]=b[r4][4];dri[c[4][3]]=5;     for (r5=0;r5<120;r5++) {         c[0][4]=b[r5][0];pet[c[0][4]]=1;         c[1][4]=b[r5][1];pet[c[1][4]]=2;         c[2][4]=b[r5][2];pet[c[2][4]]=3;         c[3][4]=b[r5][3];pet[c[3][4]]=4;         c[4][4]=b[r5][4];pet[c[4][4]]=5;         if (             (col[1]==cou[1])//英国人住红色房子          && (cou[2]==pet[1])//瑞典人养狗          && (cou[3]==dri[1])//丹麦人喝茶          && (col[2] <col[3])//绿色房子在白色房子左面          && (col[2]==dri[2])//绿色房子主人喝咖啡          && (cig[1]==pet[2])//抽Pall Mall 香烟的人养鸟          && (col[4]==cig[2])//黄色房子主人抽 Dunhill 香烟          && ((cig[3]==(pet[4]-1))||(cig[3]==(pet[4]+1)))//抽Blends香烟的人住在养猫的人隔壁          && ((pet[5]==(cig[2]-1))||(pet[5]==(cig[2]+1)))//养马的人住抽Dunhill 香烟的人隔壁          && (cig[4]==dri[3])//抽Blue Master的人喝啤酒          && (cou[4]==cig[5])//德国人抽Prince 香烟          && ((dri[4]==(cig[3]-1))||(dri[4]==(cig[3]+1)))//抽Blends香烟的人有一个喝水的邻居         ) {             printf("\n---这里是第%d个答案---\n",sum);             printf("%-10s%-10s%-10s%-10s%-10s\n","房1","房2","房3","房4","房5");             sum++;             for (k=0;k<5;k++) printf("%-10.4s","英国瑞典丹麦德国挪威"+(c[k][0]-1)*4);//国家             printf("  ---1\n");             for (k=0;k<5;k++) printf("%-10.4s","红色绿色白色黄色蓝色"+(c[k][1]-1)*4);//颜色             printf("  ---2\n");             for (k=0;k<5;k++) printf("%-10.10s","PallMall  Dunhill   Blends    BlueMasterPrince"+(c[k][2]-1)*10);//香烟             printf("  ---3\n");             for (k=0;k<5;k++) printf("%-10.4s","茶  咖啡啤酒水  牛奶"+(c[k][3]-1)*4);//饮料             printf("  ---4\n");             for (k=0;k<5;k++) printf("%-10.2s","狗鸟鱼猫马"+(c[k][4]-1)*2);//宠物             printf("  ---5\n");         }     }//r5     }//r4     }//r3     }//r2     }//r1     printf("\n计算结束\n");     return 0; } // //---这里是第1个答案--- //房1       房2       房3       房4       房5 //挪威      丹麦      英国      德国      瑞典        ---1 //黄色      蓝色      红色      绿色      白色        ---2 //Dunhill   Blends    PallMall  Prince    BlueMaster  ---3 //水        茶        牛奶      咖啡      啤酒        ---4 //猫        马        鸟        鱼        狗          ---5 // //---这里是第2个答案--- //房1       房2       房3       房4       房5 //挪威      德国      瑞典      丹麦      英国        ---1 //绿色      蓝色      白色      黄色      红色        ---2 //PallMall  Prince    Blends    Dunhill   BlueMaster  ---3 //咖啡      水        牛奶      茶        啤酒        ---4 //鸟        鱼        狗        猫        马          ---5 // //---这里是第3个答案--- //房1       房2       房3       房4       房5 //挪威      德国      瑞典      丹麦      英国        ---1 //绿色      蓝色      白色      黄色      红色        ---2 //PallMall  Prince    Blends    Dunhill   BlueMaster  ---3 //咖啡      水        牛奶      茶        啤酒        ---4 //鸟        猫        狗        鱼        马          ---5 // //---这里是第4个答案--- //房1       房2       房3       房4       房5 //挪威      德国      瑞典      英国      丹麦        ---1 //绿色      蓝色      白色      红色      黄色        ---2 //PallMall  Prince    Blends    BlueMasterDunhill     ---3 //咖啡      水        牛奶      啤酒      茶          ---4 //鸟        猫        狗        马        鱼          ---5 // //---这里是第5个答案--- //房1       房2       房3       房4       房5 //挪威      德国      瑞典      英国      丹麦        ---1 //绿色      蓝色      黄色      红色      白色        ---2 //Blends    Prince    Dunhill   BlueMasterPallMall    ---3 //咖啡      水        牛奶      啤酒      茶          ---4 //鱼        猫        狗        马        鸟          ---5 // //---这里是第6个答案--- //房1       房2       房3       房4       房5 //挪威      德国      英国      丹麦      瑞典        ---1 //绿色      蓝色      红色      黄色      白色        ---2 //PallMall  Prince    Blends    Dunhill   BlueMaster  ---3 //咖啡      水        牛奶      茶        啤酒        ---4 //鸟        鱼        马        猫        狗          ---5 // //---这里是第7个答案--- //房1       房2       房3       房4       房5 //挪威      德国      英国      丹麦      瑞典        ---1 //绿色      蓝色      红色      黄色      白色        ---2 //PallMall  Prince    Blends    Dunhill   BlueMaster  ---3 //咖啡      水        牛奶      茶        啤酒        ---4 //鸟        猫        马        鱼        狗          ---5 // //计算结束 //

user: user-0
content: 引用 4 楼 zhao4zhong1 的回复:剽窃也是一种技能！ //爱因斯坦难题,C语言数组实现 //提示： //   1、英国人住红色房子 //   2、瑞典人养狗 //   3、丹麦人喝茶 //   4、绿色房子在白色房子左面 //   5、绿色房子主人喝咖啡 //   6、抽PALL MALL香烟的人养鸟 //   7、黄色房子的主人抽DUNIILL香烟 //   8、住在中间房子的人喝牛奶 //   9、挪威人住第一间房 //  10、抽BLENDS香烟的人住在养猫人的隔壁 //  11、养马的人住在抽DUNHILL香烟的人隔壁 //  12、抽BLUE MASTER的人喝啤酒 //  13、德国人抽BRINCE的香烟 //  14、挪威人住蓝色房子的隔壁 //  15、抽BLENDS香烟的人有一个喝水的邻居 //    那谁是养鱼的呢？ #include <stdio.h> #define N 5 int a[N]; int b[120][5];//存放5!全排列情况 int num = 0; int sum = 1; void swap(int i, int offset) {     int temp;     temp = a[offset];     a[offset] = a[i];     a[i] = temp; } void print() {     int i;     for (i=0;i<N;i++) b[num][i]=a[i];     num++; } void perm(int offset) {     int i;     if (offset == N-1) {         print();         return;     }     for (i = offset; i < N; i++)  {         swap(i, offset);         perm(offset + 1);         swap(i, offset);     } } int main() {     int i,k,r1,r2,r3,r4,r5,fish;     int c[5][5]={0};//数组c记录了表格中按照每行国色烟饮宠，每列12345号房     int cou[6]={0}; //数组cou记录了每个国家的人入住的房号，顺序见下面的注释     int col[6]={0}; //数组col记录了每个颜色的房号，顺序见下面的注释     int cig[6]={0}; //数组cig记录了每个烟的房号，顺序见下面的注释     int dri[6]={0}; //数组dri记录了每个饮料的房号，顺序见下面的注释     int pet[6]={0}; //数组pet记录了每个宠物的房号，顺序见下面的注释     for(i=0;i<N;i++) a[i]=i+1;     perm(0);     /*Einstein Problem        Country:  England ,Switzerland,Danmark,Germany   ,Norway          Color:  Red     ,Green      ,White  ,Yellow    ,Blue      Cigarette:  PallMall,Dunhill    ,Blends ,BlueMaster,Prince          Drink:  Tea     ,Coffee     ,Beer   ,Water     ,Milk            Pet:  Dog     ,Bird       ,Fish   ,Cat       ,Horse     */     for (r1=0;r1<120;r1++) {         if (b[r1][0]!=5) {//挪威人不住第一间房，退出             continue;         }         c[0][0]=b[r1][0];cou[c[0][0]]=1;         c[1][0]=b[r1][1];cou[c[1][0]]=2;         c[2][0]=b[r1][2];cou[c[2][0]]=3;         c[3][0]=b[r1][3];cou[c[3][0]]=4;         c[4][0]=b[r1][4];cou[c[4][0]]=5;     for (r2=0;r2<120;r2++) {         if (b[r2][1]!=5) {//挪威人隔壁不是蓝色房子，退出             continue;         }         c[0][1]=b[r2][0];col[c[0][1]]=1;         c[1][1]=b[r2][1];col[c[1][1]]=2;         c[2][1]=b[r2][2];col[c[2][1]]=3;         c[3][1]=b[r2][3];col[c[3][1]]=4;         c[4][1]=b[r2][4];col[c[4][1]]=5;     for (r3=0;r3<120;r3++) {         c[0][2]=b[r3][0];cig[c[0][2]]=1;         c[1][2]=b[r3][1];cig[c[1][2]]=2;         c[2][2]=b[r3][2];cig[c[2][2]]=3;         c[3][2]=b[r3][3];cig[c[3][2]]=4;         c[4][2]=b[r3][4];cig[c[4][2]]=5;     for (r4=0;r4<120;r4++) {         if (b[r4][2]!=5) {//住在中间房子的人不是喝牛奶，退出             continue;         }         c[0][3]=b[r4][0];dri[c[0][3]]=1;         c[1][3]=b[r4][1];dri[c[1][3]]=2;         c[2][3]=b[r4][2];dri[c[2][3]]=3;         c[3][3]=b[r4][3];dri[c[3][3]]=4;         c[4][3]=b[r4][4];dri[c[4][3]]=5;     for (r5=0;r5<120;r5++) {         c[0][4]=b[r5][0];pet[c[0][4]]=1;         c[1][4]=b[r5][1];pet[c[1][4]]=2;         c[2][4]=b[r5][2];pet[c[2][4]]=3;         c[3][4]=b[r5][3];pet[c[3][4]]=4;         c[4][4]=b[r5][4];pet[c[4][4]]=5;         if (             (col[1]==cou[1])//英国人住红色房子          && (cou[2]==pet[1])//瑞典人养狗          && (cou[3]==dri[1])//丹麦人喝茶          && (col[2] <col[3])//绿色房子在白色房子左面          && (col[2]==dri[2])//绿色房子主人喝咖啡          && (cig[1]==pet[2])//抽Pall Mall 香烟的人养鸟          && (col[4]==cig[2])//黄色房子主人抽 Dunhill 香烟          && ((cig[3]==(pet[4]-1))||(cig[3]==(pet[4]+1)))//抽Blends香烟的人住在养猫的人隔壁          && ((pet[5]==(cig[2]-1))||(pet[5]==(cig[2]+1)))//养马的人住抽Dunhill 香烟的人隔壁          && (cig[4]==dri[3])//抽Blue Master的人喝啤酒          && (cou[4]==cig[5])//德国人抽Prince 香烟          && ((dri[4]==(cig[3]-1))||(dri[4]==(cig[3]+1)))//抽Blends香烟的人有一个喝水的邻居         ) {             printf("\n---这里是第%d个答案---\n房1       房2       房3       房4       房5     \n",sum);             sum++;             for (k=0;k<5;k++) {//国家                 switch (c[k][0]) {                 case 1:printf("英国      ");break;                 case 2:printf("瑞典      ");break;                 case 3:printf("丹麦      ");break;                 case 4:printf("德国      ");break;                 case 5:printf("挪威      ");break;                 default:break;                 }             }             printf("  ---1\n");             for (k=0;k<5;k++) {//颜色                 switch (c[k][1]) {                 case 1:printf("红色      ");break;                 case 2:printf("绿色      ");break;                 case 3:printf("白色      ");break;                 case 4:printf("黄色      ");break;                 case 5:printf("蓝色      ");break;                 default:break;                 }             }             printf("  ---2\n");             for (k=0;k<5;k++) {//香烟                 switch (c[k][2]) {                 case 1:printf("PallMall  ");break;                 case 2:printf("Dunhill   ");break;                 case 3:printf("Blends    ");break;                 case 4:printf("BlueMaster");break;                 case 5:printf("Prince    ");break;                 default:break;                 }             }             printf("  ---3\n");             for (k=0;k<5;k++) {//饮料                 switch (c[k][3]) {                 case 1:printf("茶        ");break;                 case 2:printf("咖啡      ");break;                 case 3:printf("啤酒      ");break;                 case 4:printf("水        ");break;                 case 5:printf("牛奶      ");break;                 default:break;                 }             }             printf("  ---4\n");             for (k=0;k<5;k++) {//宠物                 switch (c[k][4]) {                 case 1:printf("狗        ");break;                 case 2:printf("鸟        ");break;                 case 3:printf("鱼        ");fish=k+1;break;                 case 4:printf("猫        ");break;                 case 5:printf("马        ");break;                 default:break;                 }             }             printf("  ---5\n");         }     }//r5     }//r4     }//r3     }//r2     }//r1     printf("\n计算结束.\n");     return 0; } // //---这里是第1个答案--- //房1       房2       房3       房4       房5 //挪威      丹麦      英国      德国      瑞典        ---1 //黄色      蓝色      红色      绿色      白色        ---2 //Dunhill   Blends    PallMall  Prince    BlueMaster  ---3 //水        茶        牛奶      咖啡      啤酒        ---4 //猫        马        鸟        鱼        狗          ---5 // //---这里是第2个答案--- //房1       房2       房3       房4       房5 //挪威      德国      瑞典      丹麦      英国        ---1 //绿色      蓝色      白色      黄色      红色        ---2 //PallMall  Prince    Blends    Dunhill   BlueMaster  ---3 //咖啡      水        牛奶      茶        啤酒        ---4 //鸟        鱼        狗        猫        马          ---5 // //---这里是第3个答案--- //房1       房2       房3       房4       房5 //挪威      德国      瑞典      丹麦      英国        ---1 //绿色      蓝色      白色      黄色      红色        ---2 //PallMall  Prince    Blends    Dunhill   BlueMaster  ---3 //咖啡      水        牛奶      茶        啤酒        ---4 //鸟        猫        狗        鱼        马          ---5 // //---这里是第4个答案--- //房1       房2       房3       房4       房5 //挪威      德国      瑞典      英国      丹麦        ---1 //绿色      蓝色      白色      红色      黄色        ---2 //PallMall  Prince    Blends    BlueMasterDunhill     ---3 //咖啡      水        牛奶      啤酒      茶          ---4 //鸟        猫        狗        马        鱼          ---5 // //---这里是第5个答案--- //房1       房2       房3       房4       房5 //挪威      德国      瑞典      英国      丹麦        ---1 //绿色      蓝色      黄色      红色      白色        ---2 //Blends    Prince    Dunhill   BlueMasterPallMall    ---3 //咖啡      水        牛奶      啤酒      茶          ---4 //鱼        猫        狗        马        鸟          ---5 // //---这里是第6个答案--- //房1       房2       房3       房4       房5 //挪威      德国      英国      丹麦      瑞典        ---1 //绿色      蓝色      红色      黄色      白色        ---2 //PallMall  Prince    Blends    Dunhill   BlueMaster  ---3 //咖啡      水        牛奶      茶        啤酒        ---4 //鸟        鱼        马        猫        狗          ---5 // //---这里是第7个答案--- //房1       房2       房3       房4       房5 //挪威      德国      英国      丹麦      瑞典        ---1 //绿色      蓝色      红色      黄色      白色        ---2 //PallMall  Prince    Blends    Dunhill   BlueMaster  ---3 //咖啡      水        牛奶      茶        啤酒        ---4 //鸟        猫        马        鱼        狗          ---5 // //计算结束. // 谢谢赵老师

user: user-1
content: 剽窃也是一种技能！ //爱因斯坦难题,C语言数组实现 //提示： //   1、英国人住红色房子 //   2、瑞典人养狗 //   3、丹麦人喝茶 //   4、绿色房子在白色房子左面 //   5、绿色房子主人喝咖啡 //   6、抽PALL MALL香烟的人养鸟 //   7、黄色房子的主人抽DUNIILL香烟 //   8、住在中间房子的人喝牛奶 //   9、挪威人住第一间房 //  10、抽BLENDS香烟的人住在养猫人的隔壁 //  11、养马的人住在抽DUNHILL香烟的人隔壁 //  12、抽BLUE MASTER的人喝啤酒 //  13、德国人抽BRINCE的香烟 //  14、挪威人住蓝色房子的隔壁 //  15、抽BLENDS香烟的人有一个喝水的邻居 //    那谁是养鱼的呢？ #include <stdio.h> #define N 5 int a[N]; int b[120][5];//存放5!全排列情况 int num = 0; int sum = 1; void swap(int i, int offset) {     int temp;     temp = a[offset];     a[offset] = a[i];     a[i] = temp; } void print() {     int i;     for (i=0;i<N;i++) b[num][i]=a[i];     num++; } void perm(int offset) {     int i;     if (offset == N-1) {         print();         return;     }     for (i = offset; i < N; i++)  {         swap(i, offset);         perm(offset + 1);         swap(i, offset);     } } int main() {     int i,k,r1,r2,r3,r4,r5,fish;     int c[5][5]={0};//数组c记录了表格中按照每行国色烟饮宠，每列12345号房     int cou[6]={0}; //数组cou记录了每个国家的人入住的房号，顺序见下面的注释     int col[6]={0}; //数组col记录了每个颜色的房号，顺序见下面的注释     int cig[6]={0}; //数组cig记录了每个烟的房号，顺序见下面的注释     int dri[6]={0}; //数组dri记录了每个饮料的房号，顺序见下面的注释     int pet[6]={0}; //数组pet记录了每个宠物的房号，顺序见下面的注释     for(i=0;i<N;i++) a[i]=i+1;     perm(0);     /*Einstein Problem        Country:  England ,Switzerland,Danmark,Germany   ,Norway          Color:  Red     ,Green      ,White  ,Yellow    ,Blue      Cigarette:  PallMall,Dunhill    ,Blends ,BlueMaster,Prince          Drink:  Tea     ,Coffee     ,Beer   ,Water     ,Milk            Pet:  Dog     ,Bird       ,Fish   ,Cat       ,Horse     */     for (r1=0;r1<120;r1++) {         if (b[r1][0]!=5) {//挪威人不住第一间房，退出             continue;         }         c[0][0]=b[r1][0];cou[c[0][0]]=1;         c[1][0]=b[r1][1];cou[c[1][0]]=2;         c[2][0]=b[r1][2];cou[c[2][0]]=3;         c[3][0]=b[r1][3];cou[c[3][0]]=4;         c[4][0]=b[r1][4];cou[c[4][0]]=5;     for (r2=0;r2<120;r2++) {         if (b[r2][1]!=5) {//挪威人隔壁不是蓝色房子，退出             continue;         }         c[0][1]=b[r2][0];col[c[0][1]]=1;         c[1][1]=b[r2][1];col[c[1][1]]=2;         c[2][1]=b[r2][2];col[c[2][1]]=3;         c[3][1]=b[r2][3];col[c[3][1]]=4;         c[4][1]=b[r2][4];col[c[4][1]]=5;     for (r3=0;r3<120;r3++) {         c[0][2]=b[r3][0];cig[c[0][2]]=1;         c[1][2]=b[r3][1];cig[c[1][2]]=2;         c[2][2]=b[r3][2];cig[c[2][2]]=3;         c[3][2]=b[r3][3];cig[c[3][2]]=4;         c[4][2]=b[r3][4];cig[c[4][2]]=5;     for (r4=0;r4<120;r4++) {         if (b[r4][2]!=5) {//住在中间房子的人不是喝牛奶，退出             continue;         }         c[0][3]=b[r4][0];dri[c[0][3]]=1;         c[1][3]=b[r4][1];dri[c[1][3]]=2;         c[2][3]=b[r4][2];dri[c[2][3]]=3;         c[3][3]=b[r4][3];dri[c[3][3]]=4;         c[4][3]=b[r4][4];dri[c[4][3]]=5;     for (r5=0;r5<120;r5++) {         c[0][4]=b[r5][0];pet[c[0][4]]=1;         c[1][4]=b[r5][1];pet[c[1][4]]=2;         c[2][4]=b[r5][2];pet[c[2][4]]=3;         c[3][4]=b[r5][3];pet[c[3][4]]=4;         c[4][4]=b[r5][4];pet[c[4][4]]=5;         if (             (col[1]==cou[1])//英国人住红色房子          && (cou[2]==pet[1])//瑞典人养狗          && (cou[3]==dri[1])//丹麦人喝茶          && (col[2] <col[3])//绿色房子在白色房子左面          && (col[2]==dri[2])//绿色房子主人喝咖啡          && (cig[1]==pet[2])//抽Pall Mall 香烟的人养鸟          && (col[4]==cig[2])//黄色房子主人抽 Dunhill 香烟          && ((cig[3]==(pet[4]-1))||(cig[3]==(pet[4]+1)))//抽Blends香烟的人住在养猫的人隔壁          && ((pet[5]==(cig[2]-1))||(pet[5]==(cig[2]+1)))//养马的人住抽Dunhill 香烟的人隔壁          && (cig[4]==dri[3])//抽Blue Master的人喝啤酒          && (cou[4]==cig[5])//德国人抽Prince 香烟          && ((dri[4]==(cig[3]-1))||(dri[4]==(cig[3]+1)))//抽Blends香烟的人有一个喝水的邻居         ) {             printf("\n---这里是第%d个答案---\n房1       房2       房3       房4       房5     \n",sum);             sum++;             for (k=0;k<5;k++) {//国家                 switch (c[k][0]) {                 case 1:printf("英国      ");break;                 case 2:printf("瑞典      ");break;                 case 3:printf("丹麦      ");break;                 case 4:printf("德国      ");break;                 case 5:printf("挪威      ");break;                 default:break;                 }             }             printf("  ---1\n");             for (k=0;k<5;k++) {//颜色                 switch (c[k][1]) {                 case 1:printf("红色      ");break;                 case 2:printf("绿色      ");break;                 case 3:printf("白色      ");break;                 case 4:printf("黄色      ");break;                 case 5:printf("蓝色      ");break;                 default:break;                 }             }             printf("  ---2\n");             for (k=0;k<5;k++) {//香烟                 switch (c[k][2]) {                 case 1:printf("PallMall  ");break;                 case 2:printf("Dunhill   ");break;                 case 3:printf("Blends    ");break;                 case 4:printf("BlueMaster");break;                 case 5:printf("Prince    ");break;                 default:break;                 }             }             printf("  ---3\n");             for (k=0;k<5;k++) {//饮料                 switch (c[k][3]) {                 case 1:printf("茶        ");break;                 case 2:printf("咖啡      ");break;                 case 3:printf("啤酒      ");break;                 case 4:printf("水        ");break;                 case 5:printf("牛奶      ");break;                 default:break;                 }             }             printf("  ---4\n");             for (k=0;k<5;k++) {//宠物                 switch (c[k][4]) {                 case 1:printf("狗        ");break;                 case 2:printf("鸟        ");break;                 case 3:printf("鱼        ");fish=k+1;break;                 case 4:printf("猫        ");break;                 case 5:printf("马        ");break;                 default:break;                 }             }             printf("  ---5\n");         }     }//r5     }//r4     }//r3     }//r2     }//r1     printf("\n计算结束.\n");     return 0; } // //---这里是第1个答案--- //房1       房2       房3       房4       房5 //挪威      丹麦      英国      德国      瑞典        ---1 //黄色      蓝色      红色      绿色      白色        ---2 //Dunhill   Blends    PallMall  Prince    BlueMaster  ---3 //水        茶        牛奶      咖啡      啤酒        ---4 //猫        马        鸟        鱼        狗          ---5 // //---这里是第2个答案--- //房1       房2       房3       房4       房5 //挪威      德国      瑞典      丹麦      英国        ---1 //绿色      蓝色      白色      黄色      红色        ---2 //PallMall  Prince    Blends    Dunhill   BlueMaster  ---3 //咖啡      水        牛奶      茶        啤酒        ---4 //鸟        鱼        狗        猫        马          ---5 // //---这里是第3个答案--- //房1       房2       房3       房4       房5 //挪威      德国      瑞典      丹麦      英国        ---1 //绿色      蓝色      白色      黄色      红色        ---2 //PallMall  Prince    Blends    Dunhill   BlueMaster  ---3 //咖啡      水        牛奶      茶        啤酒        ---4 //鸟        猫        狗        鱼        马          ---5 // //---这里是第4个答案--- //房1       房2       房3       房4       房5 //挪威      德国      瑞典      英国      丹麦        ---1 //绿色      蓝色      白色      红色      黄色        ---2 //PallMall  Prince    Blends    BlueMasterDunhill     ---3 //咖啡      水        牛奶      啤酒      茶          ---4 //鸟        猫        狗        马        鱼          ---5 // //---这里是第5个答案--- //房1       房2       房3       房4       房5 //挪威      德国      瑞典      英国      丹麦        ---1 //绿色      蓝色      黄色      红色      白色        ---2 //Blends    Prince    Dunhill   BlueMasterPallMall    ---3 //咖啡      水        牛奶      啤酒      茶          ---4 //鱼        猫        狗        马        鸟          ---5 // //---这里是第6个答案--- //房1       房2       房3       房4       房5 //挪威      德国      英国      丹麦      瑞典        ---1 //绿色      蓝色      红色      黄色      白色        ---2 //PallMall  Prince    Blends    Dunhill   BlueMaster  ---3 //咖啡      水        牛奶      茶        啤酒        ---4 //鸟        鱼        马        猫        狗          ---5 // //---这里是第7个答案--- //房1       房2       房3       房4       房5 //挪威      德国      英国      丹麦      瑞典        ---1 //绿色      蓝色      红色      黄色      白色        ---2 //PallMall  Prince    Blends    Dunhill   BlueMaster  ---3 //咖啡      水        牛奶      茶        啤酒        ---4 //鸟        猫        马        鱼        狗          ---5 // //计算结束. //

user: user-1
content: http://wenku.baidu.com/link?url=DfxMdqHGPQRgS4WUOZ2o_CkgPE9XsxITyJxzC6l-_cS7s0RgXuiIAguJUu0mTZG0LVUXyrwH3lo9tpF7lJJdoBIYuzbmSTzDx6xCj8V_Q0y  昨天惹祸了。 办公室的鱼缸里养了几只透明的小虾，领导戴着眼镜看半天，问我养的什么我说，虾啊－－！ 领导一愣，走了… 于是赶紧大声地解释说，虾啊领导！..领导虾啊。领导真是虾。领导确实是虾啊！

user: user-0
content: 引用 1 楼 zhao4zhong1 的回复:https://www.baidu.com/s?wd=C%E8%AF%AD%E8%A8%80%20%E8%8B%B1%E5%9B%BD%E4%BA%BA%E4%BD%8F%E7%BA%A2%E8%89%B2%E6%88%BF%E5%AD%90&rsv_spt=1&rsv_iqid=0x9a7d76730000b363&issp=1&f=8&rsv_bp=1&rsv_idx=2&ie=utf-8&tn=baiduhome_pg&rsv_enter=0&oq=c%E8%AF%AD%E8%A8%80%20%E8%8B%B1%E5%9B%BD%E4%BA%BA%E4%BD%8F%E7%BA%A2%E8%89%B2%E6%88%BF%E5%AD%90&rsv_t=e864%2FCAPH2zbzXpntzyHGAC29X5UfT5yiRTKXrG5ZRa%2ByyCIPTJMzv7zkM%2BY8ldXInc5&rsv_pq=e2c3b63c0000cae9&inputT=37961&rsv_sug4=37961 赵老师 网上这些答案  我大可以自己推理解决  但是用C语言解决  我不知道怎么做

user: user-1
content: https://www.baidu.com/s?wd=C%E8%AF%AD%E8%A8%80%20%E8%8B%B1%E5%9B%BD%E4%BA%BA%E4%BD%8F%E7%BA%A2%E8%89%B2%E6%88%BF%E5%AD%90&rsv_spt=1&rsv_iqid=0x9a7d76730000b363&issp=1&f=8&rsv_bp=1&rsv_idx=2&ie=utf-8&tn=baiduhome_pg&rsv_enter=0&oq=c%E8%AF%AD%E8%A8%80%20%E8%8B%B1%E5%9B%BD%E4%BA%BA%E4%BD%8F%E7%BA%A2%E8%89%B2%E6%88%BF%E5%AD%90&rsv_t=e864%2FCAPH2zbzXpntzyHGAC29X5UfT5yiRTKXrG5ZRa%2ByyCIPTJMzv7zkM%2BY8ldXInc5&rsv_pq=e2c3b63c0000cae9&inputT=37961&rsv_sug4=37961