Неправильно находит минимум и максимум в массиве - 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обновляется.