etar125
Мыслитель
(5460)
12 часов назад
#include <stdio.h>
int main(void) {
int arr[5] = { -14, 2, 1, 13, 5 };
int min = 0, max = 0;
for(int i = 0; i < 5; i++) {
if(arr[i] > max) { max = arr[i]; }
else if(arr[i] < min) { min = arr[i]; }
}
printf("min:%d\nmax:%d\n", min, max);
return 0;
}
Переменные не инициализированы и ты их используешь как индекс. Отсюда и сегфолт походу.
АнтонПрофи (531)
11 часов назад
Ок, все исправил. Переменные назначил изначально нулевыми, убрал proverka и просто стал засовывать в minVal и maxVal нужные значения при сравнивании
АнтонПрофи (531)
11 часов назад
Хотя до этого этот код как-то работал, но там был определитель только минимального значения :\
S.H.I.
Оракул
(72672)
11 часов назад
#include <stdio.h>
int main() {
int arr[5] = {-14, 2, 1, 13, 5};
int minVal = arr[0]; // Инициализируем минимум первым элементом
int maxVal = arr[0]; // Инициализируем максимум первым элементом
for (int i = 1; i < 5; i++) { // Начинаем с индекса 1
if (arr[i] < minVal) {
minVal = arr[i]; // Обновляем минимум
}
if (arr[i] > maxVal) {
maxVal = arr[i]; // Обновляем максимум
}
}
printf("Минимальное значение: %d\n", minVal);
printf("Максимальное значение: %d\n", maxVal);
return 0;
}
int main() {
int arr[5] = {-14, 2, 1, 13 ,5};
int proverka = 0;
int minVal, maxVal;
for (int i = 0; i < 5; i++) { //Минимальный массив
if (arr[proverka] < arr[i]) {
arr[minVal] = arr[proverka];
proverka++;
}
}
for (int i = 0; i < 5; i++) { //Максимальный массив
if (arr[proverka] > arr[i]) {
arr[maxVal] = arr[proverka];
proverka++;
}
}
printf("%d\n", arr[minVal]);
printf("%d\n", arr[maxVal]);
return 0;
}