如何使用if语句在C中编写3整数升序算法?

问题描述 投票:-4回答:1

我试图找出一种方法来排序以任何给定顺序输入的3个数字,按照升序排列作业。到目前为止,我想出了这个。

if(*p1 > *p3){
            *p3 = *p1;
            }
        if(*p1 > *p2){
            *p2 = *p1;
            }
        if(*p2 > *p3){
            *p3 = *p2;
            } 

我应该在那里添加一个临时变量而不是移动它吗?

c
1个回答
0
投票

交换两个变量的惯用方法确实是添加一个temp变量:

void swap(T *a, T *b)
{
    T temp = *a;
    *a = *b;
    *b = temp;
}

现在,为了将三个值按升序排序,一个完整的排序算法确实是过度的。你可以通过一些比较和swaps来做到这一点。

© www.soinside.com 2019 - 2024. All rights reserved.