Составить функцию сортировки значений трех переменных а, 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; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д