.设计算法并编写程序,将下列扑克牌按照先花色后点数的规则进行降序排列(要求使用 函数指针)。 花色桃方梅杏梅杏桃方桃 点数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
如果对你有帮助,可以点击我这个回答右上方的【采纳】按钮,给我个采纳吗,谢谢