怎样设计一个先花色后数字的排序

.设计算法并编写程序,将下列扑克牌按照先花色后点数的规则进行降序排列(要求使用 函数指针)。 花色桃方梅杏梅杏桃方桃 点数K381024710J 桃桃杏方梅桃杏梅方梅 589426QKAQ

先按主键排序,相同则按次主键

typedef struct _PUKE
{
  int huase;
  int p;
}PUKE;
typedef void (*f)(PUKE *p,int n);
void sort(PUKE *p,int n)
{
  int i,j;
  PUKE t;
  for(i=0;i<n;i++)
    for(j=0;j<n-i-1;j++)
    {
      if(p[j].huase < p[j+1].huase)  || ((p[j].huase == p[j+1].huase) && (p[j].p < p[j+1].p)))
      {
        t = p[j];
        p[j] = p[j+1];
        p[j+1] = t;
      }
    }
}
int main()
{
  PUKE puke[100];
  int n,i,j;
  scanf("%d",&n);
  for(i=0;i<n;i++)
    scanf("%d %d",&puke[i].huase,&puke[i].p);//花色输入1,2,3,4表示黑、方、梅、杏即可
  f fun = sort;
  fun(puke,n);
}

参考一下:https://blog.csdn.net/qq_37264387/article/details/104989134

如果对你有帮助,可以点击我这个回答右上方的【采纳】按钮,给我个采纳吗,谢谢