| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
贴一份WA的代码,求大神指导,知道的请邮件,多谢了!!!#include<stdio.h>
#include<string.h>
#include<stdlib.h>
struct pai
{
int hua;
int num;
}p[4][13];
int i,j,k,flag,tmp,player,n_pai;
char c,s[30];
int cmp(const void*a,const void*b)
{
pai *p1=(pai*)a;
pai *p2=(pai*)b;
if(p1->hua!=p2->hua)
return p1->hua-p2->hua;
else
return p1->num-p2->num;
}
void input()
{
switch(c)
{
case('N'):
{
flag=1;
break;
}
case('E'):
{
flag=2;
break;
}
case('S'):
{
flag=3;
break;
}
case('W'):
{
flag=4;
break;
}
}
scanf("%s",s);
player=n_pai=0;
for(i=0;s[i];i+=2)
{
switch(s[i])
{
case('H'):
{
tmp=4;
break;
}
case('S'):
{
tmp=3;
break;
}
case('D'):
{
tmp=2;
break;
}
case('C'):
{
tmp=1;
break;
}
}
p[player][n_pai].hua=tmp;
if('2'<=s[i+1]&&s[i+1]<='9')
tmp=s[i+1]-'0'-1;
else if(s[i+1]=='T')
tmp=9;
else if(s[i+1]=='J')
tmp=10;
else if(s[i+1]=='Q')
tmp=11;
else if(s[i+1]=='K')
tmp=12;
else if(s[i+1]=='A')
tmp=13;
p[player][n_pai].num=tmp;
player++;
player=player%4;
if(player==0)
n_pai++;
}
scanf("%s",s);
for(i=0;s[i];i+=2)
{
switch(s[i])
{
case('H'):
{
tmp=4;
break;
}
case('S'):
{
tmp=3;
break;
}
case('D'):
{
tmp=2;
break;
}
case('C'):
{
tmp=1;
break;
}
}
p[player][n_pai].hua=tmp;
if('2'<=s[i+1]&&s[i+1]<='9')
tmp=s[i+1]-'0'-1;
else if(s[i+1]=='T')
tmp=9;
else if(s[i+1]=='J')
tmp=10;
else if(s[i+1]=='Q')
tmp=11;
else if(s[i+1]=='K')
tmp=12;
else if(s[i+1]=='A')
tmp=13;
p[player][n_pai].num=tmp;
player++;
player=player%4;
if(player==0)
n_pai++;
}
}
char get_num(int x)
{
if(x>=1&&x<=8)
return x+'0'+1;
else if(x==9)
return 'T';
else if(x==10)
return 'J';
else if(x==11)
return 'Q';
else if(x==12)
return 'K';
else if(x==13)
return 'A';
}
char get_hua(int x)
{
if(x==1)
return 'C';
else if(x==2)
return 'D';
else if(x==3)
return 'S';
else if(x==4)
return 'H';
}
void output(pai*p_n)
{
for(i=0;i<13;i++)
printf("+---");
printf("+\n");
for(i=0;i<13;i++)
printf("|%c %c",get_num(p_n[i].num),get_num(p_n[i].num));
printf("|\n");
for(i=0;i<13;i++)
printf("| %c ",get_hua(p_n[i].hua));
printf("|\n");
for(i=0;i<13;i++)
printf("|%c %c",get_num(p_n[i].num),get_num(p_n[i].num));
printf("|\n");
for(i=0;i<13;i++)
printf("+---");
printf("+\n");
}
int main()
{
freopen("input.txt","r",stdin);
/*int i,j,count;
for(count=0;count<13;count++)
{
scanf("%d%d",&p[0][count].hua,&p[0][count].num);
}
qsort(p[0],13,sizeof(p[0][0]),cmp);
for(i=0;i<13;i++)
printf("%d %d\n",p[0][i].hua,p[0][i].num);*/
while(1)
{
scanf("%c",&c);
if(c=='#')break;
input();
getchar();
//printf("%d\n",flag);
/*for(i=0;i<4;i++)
{
for(j=0;j<13;j++)
printf("%d%d ",p[i][j].hua,p[i][j].num);
printf("\n");
}*/
for(i=0;i<4;i++)
qsort(p[i],13,sizeof(p[0][0]),cmp);
switch(flag)
{
case(1):
{
printf("South player:\n");
output(p[1]);
printf("West player:\n");
output(p[2]);
printf("North player:\n");
output(p[3]);
printf("East player:\n");
output(p[0]);
break;
}
case(2):
{
printf("South player:\n");
output(p[0]);
printf("West player:\n");
output(p[1]);
printf("North player:\n");
output(p[2]);
printf("East player:\n");
output(p[3]);
break;
}
case(3):
{
printf("South player:\n");
output(p[3]);
printf("West player:\n");
output(p[0]);
printf("North player:\n");
output(p[1]);
printf("East player:\n");
output(p[2]);
break;
}
case(4):
{
printf("South player:\n");
output(p[2]);
printf("West player:\n");
output(p[3]);
printf("North player:\n");
output(p[0]);
printf("East player:\n");
output(p[1]);
break;
}
}
printf("\n");
}
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator