Составить функцию сортировки значений трех переменных а, b, с в порядке возрастания - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Составить функцию сортировки значений трех переменных а, b, с в порядке возрастания. Использовать указатели. Вот есть код сортировки, но без указателей. Кто подскажет как это реализовать спомощью указателей?
# include <stdio.h>
# include <time.h>
# include <stdlib.h>
# include <locale.h>
# include <windows.h>
 
void main()
{
    int a[3], i, j, n, tmp;
 
    setlocale(LC_ALL, "russian");
    printf("Введите a b c \n ");
    for (i = 0; i < 3; i++)
    {
        scanf_s("%d", &n);
        a[i] = n;
    }
 
    for (i = 0; i < 3; i++)
        for (j = i + 1; j<3; j++)
            if (a[i]>a[j])
            {
                tmp = a[i];
                a[i] = a[j];
                a[j] = tmp;
            }
            printf("\n Отсортированный массив\n");
            for (i = 0; i < 3; i++)
            {
                printf("%d ", a[i]);

            }
            printf("\n");
            system("pause");
}

Решение задачи: «Составить функцию сортировки значений трех переменных а, b, с в порядке возрастания»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
 
struct ORDER
{   int min, middle, max;
};
 
void arrange(ORDER *order, int a, int b, int c)
{   if(a>b)
    {   if(b>c)
        {   order->min = c;
            order->middle = b;
            order->max = a;
        }
        else if(a>c)
        {   order->min = b;
            order->middle = c;
            order->max = a;
        }
        else
        {   order->min = b;
            order->middle = a;
            order->max = c;
        }
    }
    else
    {   if(b<c)
        {   order->min = a;
            order->middle = b;
            order->max = c;
        }
        else if(a<c)
        {   order->min = a;
            order->middle = c;
            order->max = b;
        }
        else
        {   order->min = c;
            order->middle = a;
            order->max = b;
        }
    }
}
 
 
int main()
{   int a,b,c;
    ORDER *order = (ORDER*)malloc(sizeof(ORDER));
 
    printf("Enter three integers\n");
    scanf("%d%d%d", &a, &b, &c);
 
    arrange(order, a, b, c);
    printf("Ordered as increasing sequence\n");
    printf("%5d%5d%5d", order->min, order->middle, order->max);
 
    fflush(stdin);
    free(order);
    getchar();
    return 0;
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4.077 из 5
Похожие ответы