c - 如何用C语言仅使用if语句编写3个整数升序算法?

标签 c

我正在尝试找出一种方法,将按任意给定顺序输入的 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;
}

现在,要将三个值按升序排序,成熟的排序算法确实有点过分了。您只需进行一些比较和交换即可做到这一点。

关于c - 如何用C语言仅使用if语句编写3个整数升序算法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54657498/

相关文章:

c - Hopalong 分形,检查 C 语法

c - 为什么 UINT_MAX 返回 -1?

c - 宏前的 "#"是什么意思?

c - 数学库是静态链接的吗?

c - 为什么 getchar() 不能正常工作?

php - php 中的扩展不起作用

c - C 中的大整数?

c - getch() 将回车等同于 esc 键

c++ - _stricmp 在字符串匹配时返回错误值。该怎么办?

c - 不包括#include <ctype.h>