为啥输出不出来东西,感觉思路没得错呀
题目是这样的:
#include <stdio.h>
typedef struct
{ int suit; // 花色 1..4 1~4分别代表梅花,方块,红桃,黑桃
int rank; // 牌点 2..14 其中11~14分别代表J,Q,K,A
} Poker;
void SortCard(Poker cards[], int n)
{ int i,j,p; Poker t;
/* 请在此处补上部分代码,实现程序的功能 */
}
void PrintCard(Poker cards[], int n)
{ char suit[][5]={"","梅花","方块","红桃","黑桃"};
char rank[]="JQKA";
int i;
/* 请在此处补上部分代码,实现程序的功能 */
}
int main()
{ Poker player[13]={ {3,11},{4,3},{2,9},{3,8},{3,14},{1,10},
{1,7},{2,3},{3,6},{1,12},{4,13},{4,6},{2,5}};
printf("发牌后玩家手中的13张牌:\n");
PrintCard(player,13);
SortCard(player,13);
printf("\n理牌后玩家手中的13张牌:\n");
PrintCard(player,13);
getchar();
return 0;
}
程序输出结果: 发牌后玩家手中的13张牌:
红桃-J 黑桃-3 方块-9 红桃-8 红桃-A 梅花-10 梅花-7 方块-3 红桃-6 梅花-Q 黑桃-K 黑桃-6 方块-5
理牌后玩家手中的13张牌:
梅花-7 梅花-10 梅花-Q 方块-3 方块-5 方块-9 红桃-6 红桃-8 红桃-J 红桃-A 黑桃-3 黑桃-6 黑桃-K
#include <stdio.h>
typedef struct
{ int suit;
int rank;
} Poker;
void SortCard(Poker cards[], int n)
{ int i,j,p; Poker t;
for(i=0;i<n;i++)
{
if(cards[i].suit>cards[i+1].suit)
{
t=cards[i];
cards[i]=cards[i+1];
cards[i+1]=t;
}
}
for (p=1;p<5;p++)
{
for(j=0;j<n;j++)
{
if(p=cards[j].suit)
{
if(cards[j].rank>cards[j+1].rank)
{
t=cards[j];
cards[j]=cards[j+1];
cards[j+1]=t;
}
}
}
}
}
void PrintCard(Poker cards[], int n)
{ char suit[][5]={"","梅花","方块","红桃","黑桃"};
char rank[]={"JQKA"};
int i;
int m,q;
char a[n],b[n];
for(i=0;i<n;i++)
{
if (cards[i].rank>=2||cards[i].rank<=10)
a[i]=cards[i].rank;
else
{
q=cards[i].rank-11;
a[i]=rank[q];
}
}
for(i=0;i<n;i++)
{
m=cards[i].suit;
b[i]=suit[i][m];
}
for(i=0;i<n;i++)
printf("%s-%s",b[i],a[i]);
}
int main()
{
Poker player[13]={ {3,11},{4,3},{2,9},{3,8},{3,14},{1,10},{1,7},{2,3},{3,6},{1,12},{4,13},{4,6},{2,5} };
printf("发牌后玩家手中的13张牌:\n");
PrintCard(player,13);
SortCard(player,13);
printf("\n理牌后玩家手中的13张牌:\n");
PrintCard(player,13);
getchar();
return 0;
}