Неправильно находит минимум и максимум в массиве - C (СИ)

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

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

Здравствуйте! Скажите, что не так в моем коде, вроде все правильно вот только,работает неправильно:
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
 
int main()
{
    srand(time(NULL));
    int N;
    printf("N=");
    scanf("%u",&N);//%u
    int *tab;
    tab = (int *)malloc(sizeof(int) * N);
       for(int i=0; i<N; i++)
       {
           int random = rand()%41;
           tab[i] = random;
       }
       for(int i=0; i<N; i++)
       {
           printf("%d ", tab[i]);
       }
    int minimum,maximum;
 
       for(int i=0; i<N; i++)
       {
           minimum=tab[0];
           if(tab[i]<minimum)
           {
               minimum=tab[i];
           }
       }
       for(int i=0; i<N; i++)
       {
           maximum=tab[0];
           if(tab[i]>maximum)
           {
               maximum=tab[i];
           }
       }
 
    printf("\n");
    printf("Minimum %u",minimum);
    printf("\n");
    printf("Maximum %d",maximum);
    return 0;
}
Заранее спасибо!

Решение задачи: «Неправильно находит минимум и максимум в массиве»

textual
Листинг программы
       minimum=tab[0];
       for(int i=1; i<N; i++) if(tab[i]<minimum) minimum=tab[i];
       maximum=tab[0];    
       for(int i=1; i<N; i++) if(tab[i]>maximum)  maximum=tab[i];

Объяснение кода листинга программы

  1. Создается переменная minimum и инициализируется значением первого элемента массива tab
  2. Происходит итерация по всем элементам массива tab начиная со второго элемента. Если текущий элемент меньше значения переменной minimum, то значение переменной minimum обновляется.
  3. Создается переменная maximum и инициализируется значением первого элемента массива tab
  4. Происходит итерация по всем элементам массива tab начиная со второго элемента. Если текущий элемент больше значения переменной maximum, то значение переменной maximum обновляется.

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

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