我试图找出一种方法来排序以任何给定顺序输入的3个数字,按照升序排列作业。到目前为止,我想出了这个。
if(*p1 > *p3){
*p3 = *p1;
}
if(*p1 > *p2){
*p2 = *p1;
}
if(*p2 > *p3){
*p3 = *p2;
}
我应该在那里添加一个临时变量而不是移动它吗?
交换两个变量的惯用方法确实是添加一个temp
变量:
void swap(T *a, T *b)
{
T temp = *a;
*a = *b;
*b = temp;
}
现在,为了将三个值按升序排序,一个完整的排序算法确实是过度的。你可以通过一些比较和swap
s来做到这一点。