#include<stdio.h>
int asc(char p[][3]);
int?isError(char p1[][3],char p2[][3]);
void compare(char p3[][3],char p4[][3]);
int main()
{
char a[3][3],b[3][3],c; int i,j,resulta,resultb,result,flag=0; printf("請輸入A的撲克牌,撲克牌之間以空格隔開,然後按下回車:\n"); for(i=0;i<3;i++) { for(j=0;j<3;j++) {c=getchar();
if(c!=' '&&c!=10)
{
if(j==0)
{
if(c=='H'||c=='S'||c=='D'||c=='C') ; else { printf("Input Error!\n"); return 0; }}
if(j==1)
{
if(c=='J'||c=='Q'||c=='K'||c=='A'||(c>='1'&&c<='9')) { if(c=='J')c=59;
if(c=='Q')c=60;
if(c=='K')c=61;
if(c=='A')c=62;
if(c=='1')flag=1;
} else { printf("Input Error!\n"); return 0; }}
if(j==2)
{
if(c!='0') { printf("Input Error!\n"); return 0; }else { flag=0; c=58; a[i][1]=c; break; }}
a[i][j]=c;
}else
{
if(flag==1)
{
printf("Input Error!\n"); return 0;}
if(j==2)
break;j--;
}
} } printf("請輸入B的撲克牌,撲克牌之間以空格隔開,然後按下回車:\n"); for(i=0;i<3;i++) { for(j=0;j<3;j++) {c=getchar();
if(c!=' '&&c!=10)
{
if(j==0)
{
if(c=='H'||c=='S'||c=='D'||c=='C') ; else { printf("Input Error!\n"); return 0; }}
if(j==1)
{
if(c=='J'||c=='Q'||c=='K'||c=='A'||(c>='1'&&c<='9')) { if(c=='J')c=59;
if(c=='Q')c=60;
if(c=='K')c=61;
if(c=='A')c=62;
if(c=='1')flag=1;
} else { printf("Input Error!\n"); return 0; }}
if(j==2)
{
if(c!='0') { printf("Input Error!\n"); return 0; }else { flag=0; c=58; b[i][1]=c; break; }}
b[i][j]=c;
}else
{
if(flag==1)
{
printf("Input Error!\n"); return 0;}
if(j==2)
break;j--;
}
} } resulta=asc(a); if(resulta==0) return 0; resultb=asc(b); if(resultb==0) return 0; result=isError(a,b); if(result==0) return 0; compare(a,b); for(i=0;i<3;i++) { a[i][2]='\0'; b[i][2]='\0'; } printf("A: "); for(i=0;i<3;i++) { if(a[i][1]>'2'&&a[i][1]<'9')printf("%s ",a[i]);
else {if(a[i][1]==58)
{
printf("%c",a[i][0]);
printf("10 ");
}
if(a[i][1]==59)
{
printf("%c",a[i][0]);
printf("J ");
}
if(a[i][1]==60)
{
printf("%c",a[i][0]);
printf("Q ");
}
if(a[i][1]==61)
{
printf("%c",a[i][0]);
printf("K ");
}
if(a[i][1]==62)
{
printf("%c",a[i][0]);
printf("A ");
}
} } printf("\nB: "); for(i=0;i<3;i++) { if(b[i][1]>'2'&&b[i][1]<'9')printf("%s ",b[i]);
else {if(b[i][1]==58)
{
printf("%c",b[i][0]);
printf("10 ");
}
if(b[i][1]==59)
{
printf("%c",b[i][0]);
printf("J ");
}
if(b[i][1]==60)
{
printf("%c",b[i][0]);
printf("Q ");
}
if(b[i][1]==61)
{
printf("%c",b[i][0]);
printf("K ");
}
if(b[i][1]==62)
{
printf("%c",b[i][0]);
printf("A ");
}
} } printf("\n"); return 0;}
int asc(char p[][3])
{
int m,temp[2]; if(p[0][1]==p[1][1]) { if(p[0][0]==p[1][0]) {printf("Input Error!\n");
return 0;
} } if(p[1][1]==p[2][1]) { if(p[1][0]==p[2][0]) {printf("Input Error!\n");
return 0;
} } if(p[0][1]==p[2][1]) { if(p[0][0]==p[2][0]) {printf("Input Error!\n");
return 0;
} } m=0; if(p[m][1]<p[m+1][1]) { temp[0]=p[m][0]; temp[1]=p[m][1]; p[m][0]=p[m+1][0]; p[m][1]=p[m+1][1]; p[m+1][0]=temp[0]; p[m+1][1]=temp[1]; } if(p[m][1]<p[m+2][1]) { temp[0]=p[m][0]; temp[1]=p[m][1]; p[m][0]=p[m+2][0]; p[m][1]=p[m+2][1]; p[m+2][0]=temp[0]; p[m+2][1]=temp[1]; } m=1; if(p[m][1]<p[m+1][1]) { temp[0]=p[m][0]; temp[1]=p[m][1]; p[m][0]=p[m+1][0]; p[m][1]=p[m+1][1]; p[m+1][0]=temp[0]; p[m+1][1]=temp[1]; } return 1;}
int?isError(char p1[][3],char p2[][3])
{
int n; for(n=0;n<3;n++) { if(p1[n][0]==p2[0][0]&&p1[n][1]==p2[0][1]) {printf("Input Error!\n");
return 0;
} if(p1[n][0]==p2[n][0]&&p1[1][1]==p2[1][1]) {printf("Input Error!\n");
return 0;
} if(p1[n][0]==p2[n][0]&&p1[2][1]==p2[2][1]) {printf("Input Error!\n");
return 0;
} } return 1;}
void compare(char p3[][3],char p4[][3])
{
int x; for(x=0;x<3;x++) { if(p3[x][1]==p4[x][1])continue;
if(p3[x][1]>p4[x][1]){printf("Winner is A!\n");
return;
} if(p3[x][1]<p4[x][1]){printf("Winner is B!\n");
return;
} } printf("Winner is X!\n");}
這次對了。