本题的大概思路是这样子的:输入的字符串有十二个字母,把前六个存入a数组,后六个存入b数组,只要它们三对面分别颜色一样,就可以很好说明这两个骰子是一模一样的。 #include<stdio.h> #include<string.h> int main() { char a[6],b[6],c[12]; int i,j; while(~scanf("%s",c)) { int k=0,f; for(i=0;i<6;i++) { a[i]=c[i]; b[i]=c[i+6];//前六个存入a,后六个存入b; } for(i=0;i<3;i++) //从a数组的第一个开始, { for(j=0;j<6;j++)//对应找到b数组和a一样的字符, { if(a[i]==b[j]) { if(a[5-i]==b[5-j])//第i个字符对面是第5-i个字符 { b[j]=0; b[5-j]=0; k++; //找到一对面相等,k+1,再使b对应的一对面重置为0; break; } } } } if(k==3) printf("TRUE\n");//找到三对面就说明两个骰子一样,否则就不一样; else printf("FALSE\n"); } }