Проблема с вводом и выводом чисел
Не совсем понимаю, как реализовать последовательный ввод пользователем чисел, которые после выводятся в массив, вследствие чего пользователь в итоге должен получить наименьшее значение в массиве, которое он ввёл.
Думал реализовать через:
int N;
int[] nums = new int[N];
Чтобы вышло нечто вот такое:
using System;
using System.Linq;
using System.Threading;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
int min_numb = 0;
Console.WriteLine("Привет!");
Console.WriteLine("Введи последовательно все числа, которые нужны в наборе.");
Console.WriteLine("Как только будут введены все числа, введите [done] чтобы завершить ввод");
Console.WriteLine("Либо [exit] чтобы выйти из приложения");
//вот здесь должно быть построение этого списка
//сборка всех чисел в массив
string selection = Console.ReadLine(); //тут уже команды выйти или завершить ввод и выбрать наименьшее число в массиве
switch (selection)
{
case "done":
Console.WriteLine("Отлично, тогда провожу вычисления...");
//ищем из массива наименьшее значение
int[] массив = { 1, 2, 4, 6, 15, 32 };
Console.WriteLine(массив.Min());
Console.ReadKey();
Console.WriteLine($"Минимальное число тут: {min_numb}");
Thread.Sleep(2000);
break;
case "exit":
Console.WriteLine("Программа завершена");
Thread.Sleep(1000);
break;
}
}
}
}
Ответы (2 шт):
Пусть пользователь вводит числа через пробел. Потом вы можете их сохранить в строку, спарсить в целочисленные значения и добавить в массив. Это если я вас правильно понял.
Вот процесс ввода чисел. Если я правильно понял, ты не знаешь, как ввести их динамически.
List<int> mass = new List<int>(); //объявляем лист для динамического добавления новых элементов
while(true) //бесконечный цикл
{
string s = Console.ReadLine();//читаем что написал юзер
if(s == "done") break; // если написал "done", то прекращаем работу цикла
try
{
mass.Add(Convert.ToInt32(s)); // добавляем цифру в лист
}
catch(Exception ex) //если юзер ввёл не цифру
{
Console.WriteLine(ex.Message); //мы его об этом уведомляем
Console.WriteLine("Продолжить (continue) или Закончить (end)"); //предлагаем ввести (continue) или (end)
if(Console.ReadLine() == "end") break; //если (end), то завершаем работу цикла
else continue; // в ином случае продолжаем работу цикла
}
}
int[] arr = mass.ToArray(); // преобразуем лист в массив
Ну либо, как вариант, как тебе предложили другие. Попроси пользователя вводить числа через пробел, запятую или другие символы и потом воспользуйся функцией Split
int[] mass = Console.ReadLine() // читаем весь набор чисел
.Split(' ') // делим на массив строк по символу пробела, можно и другой ввести
.Select(item => Convert.ToInt32(item)) // преобразуем каждый элемент массива в int
.ToArray() // преобразуем объект в массив