c语言扑克牌排序相关问题

img


图里是我的源程序
想问问void SortCard(Poker cards[], int n)和void PrintCard(Poker cards[], int n)里面该怎么做
实现扑克牌从小到大排序

代码如下:

#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;
    /*  请在此处补上部分代码,实现程序的功能  */
    for(i=0;i<n-1;i++)
    {
        for(j=0;j<n-i-1;j++)
        {
            if( (cards[j].suit > cards[j+1].suit) || (cards[j].suit == cards[j+1].suit && 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;
    /*  请在此处补上部分代码,实现程序的功能  */
    for(i=0;i<n;i++)
    {
        if(cards[i].rank < 11)
            printf("%s-%d ",suit[cards[i].suit],cards[i].rank);
        else
            printf("%s-%c ",suit[cards[i].suit],rank[cards[i].rank-11]);
        
    }

}

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;
}

这个函数想实现什麽功能啊,你得说明白才知道啊

问题是你想怎么排序