首页 > 解决方案 > 如何使用 if 语句在 C 中编写 3 个整数升序算法?

问题描述

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

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

我应该在其中添加一个临时变量来移动它吗?

标签: c

解决方案


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

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

现在,要将三个值按升序排序,完全成熟的排序算法确实是矫枉过正。你可以通过一些比较和swaps 来做到这一点。


推荐阅读