ulvis.paste.net

Paste Search Dynamic
Recent pastes
task03(Gafarov_HW)
  1. using system;
  2. using system.Collections.Generic;
  3. using system.Linq;
  4. using system.Text;
  5. using system.Threading.Tasks;
  6.  
  7. namespace Tassk03
  8. {
  9.     class Program
  10.     {
  11.         /// <summary>
  12.         /// Сообщение в консоль о неверных входных данных
  13.         /// </summary>
  14.         private const string wrongFormatMessage = "Неверные входные данные. . .";
  15.  
  16.         /// <summary>
  17.         /// Метод для ввода числа
  18.         /// </summary>
  19.         /// <param name="message">Сообщение в консоль</param>
  20.         /// <returns>Введенное число</returns>
  21.         static public int ReadInt(string message)
  22.         {
  23.             int x;
  24.             Console.Write(message);
  25.             while (!int.TryParse(Console.ReadLine(), out x))
  26.             {
  27.                 Console.WriteLine(wrongFormatMessage);
  28.                 Console.Write(message);
  29.             }
  30.             return x;
  31.         }
  32.  
  33.         static void Main(string[] args)
  34.         {                                                       // Создание двунаправленного списка
  35.             LinkedList<int> numbers = new LinkedList<int>();  
  36.                                              // Цикл для повтора решения
  37.             do
  38.             {                                // Очистка консоли
  39.                 Console.Clear();                                    // Запрос на ввод кол-ва элементов нашего списка
  40.                 int n = ReadInt("Введите количество элементов: ");  // Заполнение списка
  41.                 for (var i = 0; i < n; i++)
  42.                 {
  43.                     int x = ReadInt("Введите значения элемента: ");
  44.                     numbers.AddLast(x);
  45.                 }                               // Вывод списка в изначальном виде
  46.                 foreach (int elem in numbers)
  47.                 {
  48.                     Console.Write($"{elem} ");
  49.                 }                                           // Создание объекта с помощью которого мы будем двигаться по списку
  50.                 LinkedListNode<int> listnode = numbers.First;   // Цикл, в котором мы будем удалять в списке каждый последующий узел
  51.                 while (listnode != null)                        // после узла с положительным значением
  52.                 {                                                       // Если значение узла положительное и узел не является последним, то                                                                                  
  53.                     if (listnode.Value > 0 && listnode.Next != null)    // удаляем следующий узел из списка
  54.                     {
  55.                         numbers.remove(listnode.Next);
  56.                     }                           // Переводим объект на следующий узел списка
  57.                     listnode = listnode.Next;
  58.                 }
  59.                 Console.WriteLine("\nОбновленный список: ");   // Вывод обновленного списка
  60.                 foreach (int elem in numbers)
  61.                 {
  62.                     Console.Write($"{elem} ");
  63.                 }
  64.                 Console.WriteLine("\nДля завершения работы программы нажмите Esc . . .");
  65.                 Console.WriteLine("Для продолжения любую другую клавишу . . .");
  66.             } while (Console.ReadKey(true).Key != ConsoleKey.Escape);
  67.         }
  68.     }
  69. }
Parsed in 0.021 seconds