Как найти из массива минимальное значение исключая ноль
- Войдите на сайт для отправки комментариев
Чт, 28/01/2021 - 15:52
Добрый день.
Нужна помощь. Подскажите, не могу сделать сортировку- минимум.
Постоянно вылазит ноль, а мне надо все кроме нуля.
total =0;
// put your main code here, to run repeatedly:
for (i = 0; i < 10; i = i + 1) {
// total =0;
if ( i==0 ) {
max_v = x[0] ;
max_i = 0;
min_v = x[0] ;
min_i = 0;
}
if ( x[i] > max_v ) {
max_v = x[i];
max_i = i;
}
if ( x[i] < min_v && x[i]>0) { ///ПРОВЕРИТЬ НА НОЛЬ!!!!!!!!!!!!!!!
min_v = x[i];
min_i = i;
}
total += x[ i ];
}
Буду благодарна за помощь.
Буду благодарна за помощь.
Лучше учебники читай тщательнее.
Ivanna13- вставьте код правильно и ЦЕЛИКОМ. Где, к примеру, описание массива?
Для проверки на ноль можно использовать "неравно"-> "!="
А можно и так:
Коллеги, вы не учитываете, что задачка "найти минимальный элемент массива, не равный нулю" - может и не иметь решений
Коллеги, вы не учитываете, что задачка "найти минимальный элемент массива, не равный нулю" - может и не иметь решений
Тогда все равно нужно 0 возвращать, разве нет?
Коллеги, вы не учитываете, что задачка "найти минимальный элемент массива, не равный нулю" - может и не иметь решений
Согласен, тогда нужно использовать флаг, что условие выполнилось хотя бы один раз, если не выполнилось, то вывести, что решения нет. А ещё может быть, что минимальное и есть максимальное значение int. Тогда так:
Я к тому, что девушка в заглавном посте не показала, как инициализируется массив... мож у нее там нули одни :) А она мучается, складывает слово "вечность" из четырех букв :)
А x[] - чего за массив? int? uint? float?
В общем, обсуждать что либо бессмысленно, пока код не будет выложен полностью и по правилам форума.
Итак, если бы ТС удосужилась правильно вставить отформатированный код, то это выглядело бы вот так:
Что вижу я. Во первых - в массиве "x" имеется (или задумывалось иметься) 10 элементов. Как проинициализирован массив - не известно. Этот код, на сколько я не кодер вообще, вижу что должен найти минимальное и максимальное значение в массиве. Запомнить их в соответствующие переменные min_v и max_v, а их индексы в соответствующие переменные min_i и max_i (причем минимальным не должен быть ноль). Переменная total - ни что иное как сумма всех элементов массива (если предположить, что переменная total и массив "хэ" (ладно-ладно - "икс") одного типа (иначе не понятно зачем это и что будет в результате). Так?
Из всего вышесказанного у меня возникает один вопрос:
Где тут сортировка????
Использовала для проверки код где массив был задан в инициализации элементов.
при этом все работало как надо.
Во второй версии нужно было задать массив уже в void loop
и вот здесь находиться всегда минимальное число,но все время учитываются нули
Так у тебя же первый элемент массива равен нулю и ты его присваиваешь в 26 и 28 строках. ))))
Для сортировки от минимума к максимуму используют "метод всплывающих пузырьков". Для обратного - видимо "тонущего камня". А если чего-то там надо исключить - так его обычно обходят сбоку. Или выкидывают вне зоны опроса.
Ладно, я сегодня добрый, вот тебе решение задачи (как ты говоришь -"чтобы не было нуля"):
Проверь, наверное работает. Я не проверял (лень).
спасибо,но не работает.
также ноль минимальное число
спасибо,но не работает.
также ноль минимальное число
Какой ноль? Код BOOM не компилируется. Или вы ошибки исправили?
спасибо,но не работает.
также ноль минимальное число
Какой ноль? Код BOOM не компилируется. Или вы ошибки исправили?
исправила.
ошибка в break и в i++
Все же загрузил, нельзя так оставлять (забыл убрать вашу инициализацию минимального значения из луп):
Тогда вопрос, зачем переносить код в loop, в дальнейшем предполагается, что значения массива постоянно будут изменяться?
Этого я тоже не понял, но если хочется и возможно... то почему бы и нет? ))
Этого я тоже не понял, но если хочется и возможно... то почему бы и нет? ))
Если маститый учёный говорит - это невозможно, то он скорее всего ошибается....
А если тот же ученый говорит, что это возможно - то он скорее всего прав.
Без защиты, что все нули. Ой, обшибся. Поправил.
А чем не устроил мой метод проверки ?
Тогда вопрос, зачем переносить код в loop, в дальнейшем предполагается, что значения массива постоянно будут изменяться?
планируется получать данные с термопар.
поэтому данные будут изменяться
температура будет всегда больше 10 градусов.
при отсутсвии датчика будет 0.
поэтому надо 0 исключить из проверки
планируется получать данные с термопар.
А какой сакральный смысл в нуле? Если правильно настроить термопару, то нуля не будет. Никогда!
Ну я сделал по своему.
при отсутсвии датчика будет 0.
Не заметил. Т.е. когда датчик пропадает - его надо исключить? Он может пропасть в ходе работы? Или сразу - при проверке мы его можем исключить?
Прекрасная дама - дайте, пожалуйста, нормальную информацию про Ваш экперимент.
спасибо ,работает
планируется получать данные с термопар.
поэтому данные будут изменяться
температура будет всегда больше 10 градусов.
при отсутсвии датчика будет 0.
поэтому надо 0 исключить из проверки
Тогда мои строчки 05-18 в loop.
Ну всё-таки вариант когда все датчики дадут сбой тоже может произойти.
Ой, чувствую, что старожилы меня сейчас "побьют", что я неправильно совсем новичков воспитываю.
Ой, чувствую, что старожилы меня сейчас "побьют", что я неправильно совсем новичков воспитываю.
Не, девушкам можно. Главное, что бы это не мужик переодетый был.