#include<stdio.h>
int main()
{
int JIA[3], YI[3], i = 0; YI[0] = 1, JIA[0] = 1;
int A = 0, B = 0, C = 0;
int n = 1;
for (i = 1; i < 3; i++)
{
YI[i] = YI[i - 1] + 1;
JIA[i] = JIA[i - 1] + 1;
}
int X = YI[0], Y = YI[1], Z = YI[2]; for (C = 1; C < 4; C++) {
int k = 0;
for (k = 0; k < 3; k++) {
if (C != YI[0] && C != YI[2])
{
goto out1;
}
}
}out1:
for (A = 1; A < 4; A++) {
int k = 0;
for (k = 0; k < 3; k++) {
if (A != YI[0] && C != A)
{
goto out2;
}
}
}out2:
for (B = 1; B < 4; B++) {
int k = 0;
for (k = 0; k < 3; k++) {
if (B != C && B != A) {
goto out3;
}
}
}out3:
if (A == YI[0])printf("A=X\n");
else if (A == YI[1])printf("A=Y\n");
else if (A == YI[2])printf("A=Z\n");
if (B == YI[0])printf("B=X\n");
else if (B == YI[1])printf("B=Y\n");
else if (B == YI[2])printf("B=Z\n");
if (C == YI[0])printf("C=X\n");
else if (C == YI[1])printf("C=Y\n");
else if (C == YI[2])printf("C=Z\n");\\这个怎么变成\\
return 0;
}
//abc 队员对应数字 队员的名字 另一对队员对应数字
void display(double abc,char name,double *YI){
if(abc==YI[0]){
printf("%s=X\n",&name);
}else if(abc==YI[1]){
printf("%s=Y\n",&name);
}else{
printf("%s=Z\n",&name);
}
}
int main(){
int YI[3],i;
int A=0,B=0,C=0;
for(i=1;i<4;i++){//赋值数组值为 1,2,3
YI[i-1]=i;
}
//C不和XZ比,C不等于第一个和第三个
for(C=1;C<4;C++){
if(C!=YI[0]&&C!=YI[2]) {
break;
}
}
//A不和X比,A不等于X,同时A也不能等于C
for(A=1;A<4;A++){
if(A!=YI[0]&&C!=A){
break;
}
}
//确定AC后得到B
for(B=1;B<4;B++){
if(B!=A&&B!=C){
break;
}
}
//注意:跳出for循环使用break,比goto好一些
display(A,'A',YI);
display(B,'B',YI);
display(C,'C',YI);
}
你想得太复杂了,供参考:
#include <stdio.h>
int main()
{
char i, j, k;
printf("下面是比赛的名单:\n");
for (i = 'X'; i <= 'Z'; i++)
{
for (j = 'X'; j <= 'Z'; j++)
{
if (i != j)
{
for (k = 'X'; k <= 'Z'; k++)
{
if (i != k && j != k)
{
if (i != 'X' && k != 'X' && k != 'Z')
printf("A = %c\nB = %c\nC = %c\n", i, j, k);
}
}
}
}
}
return 0;
}