Неправильно находит минимум и максимум в массиве - 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];
Объяснение кода листинга программы
- Создается переменная
minimum
и инициализируется значением первого элемента массиваtab
- Происходит итерация по всем элементам массива
tab
начиная со второго элемента. Если текущий элемент меньше значения переменнойminimum
, то значение переменнойminimum
обновляется. - Создается переменная
maximum
и инициализируется значением первого элемента массиваtab
- Происходит итерация по всем элементам массива
tab
начиная со второго элемента. Если текущий элемент больше значения переменнойmaximum
, то значение переменнойmaximum
обновляется.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д