首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

一个关于结构体指针交换的有关问题

2013-11-23 
一个关于结构体指针交换的问题。void sortdata(struct data *p,int len,int a[]){int istruct data *tt3

一个关于结构体指针交换的问题。

void sortdata(struct data *p,int len,int a[])
{
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);
}
}
这是从我的工程中拷贝的一段代码。 我是想实现的动作是:如果结构体数组a[i]中sum成员大于结构体数组a[i+1]中的sum成员 这实现结构体中的位置交换 最后输出的是以sum为标准的升序输出。我应该在if{}中如何写交换语句?
[解决办法]
你这是个排序啊,你排序算法有问题阿
[解决办法]
指针内容交换,不是指针地址交换。
看楼上的代码就行了。

热点排行