if(p2->a>p1->a)
{
temp=*p2;
*p2=*p1;
*p1=temp;
}
else if(p2->b>p1->b&&p2->a==p2->a)
{
temp=*p2;
*p2=*p1;
*p1=temp;
}
else if(p2->c>p1->c&&p2->b==p1->b&&p2->a==p2->a)
{
temp=*p2;
*p2=*p1;
*p1=temp;
}
定义一个函数,将if else 循环和交换写到一起,一行解决
p1,p2是什麽结构啊?把类型贴出来,不然函数参数没法写
if...else也不是循环啊,你是希望将三个代码块内容写一个函数吗?
大概这样吧:
typedef struct _strcu
{
int a;
int b;
int c;
}strcu;
strcu a,b;
change(&a,&b);
void change(strcu *p1,strcu *p2)
{
int flag = 0;
if(p2->a>p1->a)
flag = 1;
else if(p2->b>p1->b&&p2->a==p2->a)
flag = 1;
else if(p2->c>p1->c&&p2->b==p1->b&&p2->a==p2->a)
flag = 1;
if(flag == 1)
{
strcu temp=*p2;
*p2=*p1;
*p1=temp;
}
}