2015-03-21 3 views
0

Через ЦМД, если пользователь вводит следующие номера: 2 -13 4 12 -1 113 19, вывод должен быть:Чтение номер во второй раз

(2,-13) has signs (+,-) and is in Q4 
(4,12) has signs (+,+) and is in Q1 
(-1,113) has signs (-,+) and is in Q2 

Но то, что я получаю это:

(2,-13) has signs (+,-) and is in Q4 
(-13,4) has signs (-.+) and is in Q2 
(4,12) has signs (+,+) and is in Q1 
(12,-1) has signs (+,-) and is in Q4 
(-1,113) has signs (-.+) and is in Q2 
(113,19) has signs (+,+) and is in Q1 

т.е. второе число в паре снова повторяется как первое число в следующей последовательной паре. Что не так с кодом?

public static void main(String [] args) 
    { 

     int[] numbers = new int[args.length]; 
      try 
      { 
       for (int i = 1; i < args.length; i++) 
       { 

        numbers[i-1] = Integer.parseInt(args[i-1]); 
        numbers[i] = Integer.parseInt(args[i]); 
        System.out.println("("+numbers[i-1]+","+numbers[i]+")" + " has signs " + checkSigns(numbers[i-1], numbers[i]) + " and is in " + fromInts(numbers[i-1], numbers[i])); 
       } 
      } 
      catch (NumberFormatException e) 
      { 
       System.out.println(e.getMessage()); 
      } 
    } 

ответ

4

Приращение переменной i по 2, потому что вы с помощью двух элементов из массива в каждой итерации цикла:

public static void main(String [] args) 
{ 

    int[] numbers = new int[args.length]; 
     try 
     { 
      for (int i = 1; i < args.length; i += 2) 
      { 

       numbers[i-1] = Integer.parseInt(args[i-1]); 
       numbers[i] = Integer.parseInt(args[i]); 
       System.out.println("("+numbers[i-1]+","+numbers[i]+")" + " has signs " + checkSigns(numbers[i-1], numbers[i]) + " and is in " + fromInts(numbers[i-1], numbers[i])); 
      } 
     } 
     catch (NumberFormatException e) 
     { 
      System.out.println(e.getMessage()); 
     } 
} 
0

ваш цикл должен увеличиваться на 2. , потому что в вашем случае это что происходит номера [i-1] = 2 где i = 1 номера [i] = -13 где i = 1 номера [i-1] = -13 где i = 2 номера [i] = 4 где i = 2 и т. д.

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