2015-11-21 2 views
-2

Я нашел этот код для поиска минимальных и максимальных чисел с пользовательского ввода.минимальный и максимальный номера от пользовательского ввода

using System; 
    class FindMinAndMaximalNumber 
    { 
     static void Main() 
     { 
      string[] numbers; 
      bool isInteger=true; 
      int minimal=int.MaxValue; 
      int maximal=int.MinValue; 
      Console.Write("Enter a sequence of numbers delimited with \",\":"); 
      numbers = (Console.ReadLine()).Split(','); 

       int[] intNumbers=new int[numbers.Length]; 
      for (int i = 0; i < (numbers.Length); i++) 
      { 
       isInteger = int.TryParse(numbers[i], out intNumbers[i]); 
       if (isInteger==false) 
       { 
        break; 
       } 
      } 
      if (isInteger) 
      { 
       for (int i = 0; i < numbers.Length; i++) 
       { 
        if (intNumbers[i] < minimal) 
        { 
         minimal = intNumbers[i]; 
        } 
        if (intNumbers[i] > maximal) 
        { 
         maximal = intNumbers[i]; 
        } 
       } 
       Console.WriteLine("minimal={0}",minimal); 
       Console.WriteLine("maximal={0}",maximal); 
      } 
      else 
      { 
       Console.WriteLine("Not a valid entry! Some of the entries are not integer!"); 
      } 
     } 
    } 

Мои вопросы:
1 - Является ли следующий код объявления массива intNumbers, который имеет размер, равный размеру массива под названием «номер»

int[] intNumbers=new int[numbers.Length]; 

да или нет?

2 - Проверьте этот метод TryParse ....

isInteger = int.TryParse(numbers[i], out intNumbers[i]); 

Если IsInteger правда, то это mean..that значение из я хранится в intNumbers[i] ... ???? или может кто-нибудь объяснить этот код breifly

+4

не могли бы вы просто выполнить код и посмотреть, что он делает? Может быть, пройти через это в отладчике? –

+0

На ваши вопросы - да. Но значение 'numbers [i]' хранится в 'intNumbers [i]', а не только 'i'. – SimpleVar

ответ

0
  1. Да. datatype[] arrayName = new datatype[length];

  2. Метод int.TryParse() преобразует строковое представление числа в его 32-разрядный эквивалентный знак со знаком. Возвращаемое значение указывает, будет ли преобразование успешным. В этом случае TryParse проверит каждый элемент массива «числа» и, если он является типом данных int, тогда он сохранит это значение в другом массиве. Это было сделано для предотвращения ввода не численных значений. Итак, если IsInteger верно, то это означает, что все значения Введенных вами номер

0

Спасибо большого SimpleVar и спасибо Су много Мегатрона за вашу помощь. Только в прошлом осветление .so это означает, что следующий код является «только» объявляя размер нового массива под названием «intNumbers»

ИНТ [] intNumbers = новый INT [numbers.Length];

но элементы хранятся в этом новом массиве "intNumbers" по этому коду (вместе с цикл)

isInteger = int.TryParse (цифры [I], из intNumbers [I]) ;

каждый раз, когда его истинное и цикл выполняется

Смежные вопросы