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