一个关于结构体指针交换的问题。
void sortdata(struct data *p,int len,int a[])这是从我的工程中拷贝的一段代码。 我是想实现的动作是:如果结构体数组a[i]中sum成员大于结构体数组a[i+1]中的sum成员 这实现结构体中的位置交换 最后输出的是以sum为标准的升序输出。我应该在if{}中如何写交换语句?
{
int i;
struct data *t;
t=3;
for(i=1;i<len;i++,p++)
{
if((p->sum)<((p+1)->sum))
{
t=p;
*(p+1)=*p;
p=t;
}
}
for(i=0;i<len;i++,p++)
{
printf("number:%d\t",p->number);
printf("name:%s\t",p->name);
printf("chinese:%.1f\t",p->chinese);
printf("math:%.1f\t",p->math);
printf("english:%.1f\n",p->english);
}
}