Снизу кусок кода и то, что он выдаёт, минимально число - не правильное, что можно или нужно сделать для того, чтобы оно выдавало правильное минимально число. Заранее спасибо
Можешь сразу читать 3 пункт, если интересна проблема только данного кода.
Объяснение:
1) Во-первых, обычно для максимальных и минимальных значений используют противоположные значения, чтобы их потом с чем-либо сравнивать, то бишь вместо nmin:=n[1] тебе следовало бы написать что-то типа nmin:=1000, а не nmin:=n[1], ибо первый элемент у тебя пуст, то есть у тебя nmin изначально равно 0, что не очень хорошо.
2) Во-вторых, когда ты пробегаешься по массиву, чтобы найти минимальное значение, ты почему-то начинаешь со второго элемента, не обращая внимания на первый, - это не очень хорошо. В данном случае, конечно, это не сыграло никакой роли, но если бы первый элемент был минимальным, то он бы был пропущен и программа бы вывела неправильный ответ.
3) Но в твоём случае это на правильный ответ никак не влияет - проблема кода в том, что если он найдёт минимальный элемент, то в nmin уйдёт индекс этого элемента, а не сам элемент, то есть надо поменять строчку nmin:=b на nmin:=n[b].
2 votes Thanks 1
bmax0501
СПАСИБО за помощь, но ошибку я нашёл до этого, в nmin я записываю индекс элемента массива, чтобы сократить код(условие задания). Ошибка была в том, что я вместо индекса зачем-то ввёл 1 элемент массива(поэтому я его и пропустил). Ошибка была в том, что нужно было проверять элемент массива с индексом nmin, если элемент массива с индексом b меньше, то я вписываю счётчик b в элемент nmin. Затупил я не по детски короче
Answers & Comments
Ответ:
Можешь сразу читать 3 пункт, если интересна проблема только данного кода.
Объяснение:
1) Во-первых, обычно для максимальных и минимальных значений используют противоположные значения, чтобы их потом с чем-либо сравнивать, то бишь вместо nmin:=n[1] тебе следовало бы написать что-то типа nmin:=1000, а не nmin:=n[1], ибо первый элемент у тебя пуст, то есть у тебя nmin изначально равно 0, что не очень хорошо.
2) Во-вторых, когда ты пробегаешься по массиву, чтобы найти минимальное значение, ты почему-то начинаешь со второго элемента, не обращая внимания на первый, - это не очень хорошо. В данном случае, конечно, это не сыграло никакой роли, но если бы первый элемент был минимальным, то он бы был пропущен и программа бы вывела неправильный ответ.
3) Но в твоём случае это на правильный ответ никак не влияет - проблема кода в том, что если он найдёт минимальный элемент, то в nmin уйдёт индекс этого элемента, а не сам элемент, то есть надо поменять строчку nmin:=b на nmin:=n[b].