Как написать 3-х целочисленный алгоритм в возрастающем порядке в C с помощью операторов if? - PullRequest
0 голосов
/ 12 февраля 2019

Я пытаюсь найти способ сортировки 3 чисел, введенных в любом заданном порядке, в порядке возрастания для домашнего задания.До сих пор я придумал это.

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

Должен ли я вместо этого добавить временную переменную, чтобы переместить ее?

1 Ответ

0 голосов
/ 12 февраля 2019

Идиоматический способ поменять местами две переменные - это добавить переменную temp:

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

Теперь, чтобы отсортировать три значения в порядке возрастания, полноценный алгоритм сортировки действительно будет излишним.Вы можете сделать это с помощью нескольких сравнений и swap s.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...