C语言结构体问题,求解啊,怎么交换两个同类型成员

C语言结构体问题,求解啊,怎么交换两个同类型成员,第1张

交换没有问题,交换的判断条件不太对,大概是
if (workers[j]year>workers[j+1]year || workers[j]year==workers[j+1]year && workers[j]month>workers[j+1]month || workers[j]year==workers[j+1]year && workers[j]month>workers[j+1]month && workers[j]day>workers[j+1]day
)
{
t=workers[j];
workers[j]=workers[j+1];
workers[j+1]=t;
}

typedef struct studentTyp
{
char name[7];
int nmbrData;
float marksData[5];
float aveData;
} studentTyp;

Change(&studentData[i], &studentData[i+1]);

void Change(struct studentTyp a, struct studentTyp b)
{
studentTyp c; //声明一个中间值
c = a; //a指的是a这个指针指向的内存单元中的内容,b同理
a = b;
b = c; //所以这三行代码就是把a b两个指针指向的内存单元中的内容交换
return 0;
}

由于不知道结构体的类型,所以要用C++的模板来写咯
template <typename Ty>
void swapstruct(Ty& sA, Ty& sB)
{
Ty temp = sA;
sA = sB;
sB = sA;
}


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/10331547.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-07
下一篇 2023-05-07

发表评论

登录后才能评论

评论列表(0条)

保存