язык С. указатели. ошибка инициализации

задача:

  1. Получить от пользователей три числа
  2. Определить максимум и минимум (через использование отдельной функций)
  3. вернуть значение максимума и минимум в основную функцию (через использование указателей)
  4. Вывести на принт максимум и минимум

при попытке это сделать, появляется ошибка

Variable 'min' is uninitialized when used here [-Werror,-Wuninitialized] Аналогично про переменую max.

подскажите, что я делаю не так?

#include <stdio.h>
void maxmin(int prob1, int prob2, int prob3, int *max, int *min);

int main()
{
    int x, y, z;
    scanf("%d %d %d", &x, &y, &z);

    int *max, *min;

    maxmin(x, y, z, max, min);

    printf("%d%d", *max, *min);

    return 0;
}


void maxmin(int prob1, int prob2, int prob3, int *max, int *min)
{
    max = min = &prob1;
    
    if(prob2 > *max)
        max = &prob2;
    if(prob2 < *min)
        min = &prob2;
    
    if(prob3 > *max)
        max = &prob3;
    if(prob3 < *min)
        min = &prob3;    
}

Ответы (1 шт):

Автор решения: Harry

Вот как будет работать:

void maxmin(int prob1, int prob2, int prob3, int *max, int *min);

int main()
{
    int x, y, z;
    scanf("%d %d %d", &x, &y, &z);
    int max, min;
    maxmin(x, y, z, &max, &min);
    printf("%d  %d", max, min);

}


void maxmin(int prob1, int prob2, int prob3, int *max, int *min)
{
    *max = *min = prob1;
    
    if(prob2 > *max)
        *max = prob2;

    if(prob2 < *min)
        *min = prob2;
    
    if(prob3 > *max)
        *max = prob3;

    if(prob3 < *min)
        *min = prob3;
}
→ Ссылка