C语言编程问题有红、黄、黑、白四色球各一个,放置在编号为1、2、
有红、黄、黑、白四色球各一个,放置在编号为1、2、3、4四个格子的盒中,每个格子放置一只球,它们的顺序不知。甲、乙、丙三人猜测放置顺序如下: 甲:黑编号1,黄编号2; 乙:黑编号2,白编号3; 丙:红编号2,白编号4。 结果证明甲乙丙三人各猜中了一半。 请你写出四色球在盒子中放置情况。
#include void main() { char box[5]; int i; printf("********************************\n"); printf("* 放球问题 *\n"); printf("********************************\n"); // a:红 b:黄 c:黑 d:白 for(box[1]='a';box[1]<='d';box[1]++) for(box[2]='a';box[2]<='d';box[2]++) { if (box[1]!=box[2]) for(box[3]='a';box[3]<='d';box[3]++) { if(box[1]!=box[3]&&box[2]!=box[3]) for(box[4]='a';box[4]<='d';box[4]++) { if(box[1]!=box[4]&&box[2]!=box[4]&&box[3]!=box[4]) if ( (box[1]=='c'&&box[2]!='b' || box[1]!='c'&&box[2]=='b') && (box[2]=='c'&&box[3]!='d'||box[2]!='c'&&box[3]=='d') && (box[2]=='a'&&box[4]!='d'||box[2]!='a'&&box[4]=='d') ) for(i=1;i<5;i++) switch(box[i]) { case 'a': printf("box[%d]=red ball\n",i);break; case'b': printf("box[%d]=yellow ball\n",i);break; case 'c': printf("box[%d]=black ball\n",i);break; case 'd': printf("box[%d]=white ball\n",i);break; } } } } }