Мне нужно найти наименьшее значение, которое больше 0 среди всех целых чисел, хранящихся в массиве. Я пробовал некоторые из способов сделать это в stackoverflow, но мое минимальное значение по-прежнему равно 0 во всех случаях. Что я должен изменить в своем коде, чтобы заставить его работать?Найти наименьшее значение в массиве
int[] userInput = new int[1000];
int counter;
Console.WriteLine ("Please input some numbers");
for (counter = 0; counter < userInput.Length; counter++) {
string line = Console.ReadLine();
if (line == "" || line == "stop") {
break;
} else {
int.TryParse (line, out userInput [counter]);
}
}
int min = 0;
for(int i = 0; i < userInput.Length; i++)
{
if(userInput[i] > 0)
{
userInput[i] = min;
break;
}
}
for(int i = 0; i < userInput.Length; i++)
{
if(userInput[i] < min && userInput[i] > 0)
{
min = userInput [i];
}
}
Console.WriteLine(min);
}
}
}
Я хотел бы сделать это без использования LINQ.
Первый цикл переписывает все значения, которые больше, чем 0 с 0. После этого, это не удивительно, что вы получите 0 в качестве результата. .. –
@DanielHilgarth есть перерыв там. Только первый элемент. – I4V
Вы получаете правильные значения в своем массиве ввода? поскольку вы используете int.TryParse, и если при преобразовании «строки» произойдет исключение, массив будет заполнен 0. – wizzardz