2016-05-25 2 views
0

Создана программа для поиска куба отдельных целых чисел, заданных в строке, разделенной пробелом.Как узнать, что является логической ошибкой?

Это программа. У него есть некоторая логическая ошибка. Он работает для любого случая, когда ввод является символом.

class Cube{ 

    void process(){ 
     int i=0,sum=0,j; 
     int cube; 
     int ar[]=new int[100]; 
     Scanner scan=new Scanner(System.in); 
     while(scan.hasNext()){ 
      if(scan.hasNextInt()){ 
       ar[i]=scan.nextInt(); 
       i++; 
      } 
      else{ 
       scan.next(); 
      } 
     }  
     for(j=0;j<=i;j++){ 
      cube=ar[j]*ar[j]*ar[j]; 
      sum=sum+cube; 
     } 
     System.out.print(sum); 
    } 
    public static void main(String args[]){ 
     Cube obj=new Cube(); 
     obj.process(); 
    } 
} 

Входной сигнал подается через интернет-компилятором: 1 2 3 4 5 или любой длины

+0

Какой у вас выход и что вы ожидаете? –

+3

Ответ на ваш экзекутный вопрос: 'debugging' – SomeJavaGuy

+0

@ Вход JohannisK предоставляется через панель ввода онлайн-компилятора. Я собрал и получил правильный результат. но тестовые случаи не могут быть приняты –

ответ

0

Если вход находится в одной строке, как 1 2 3 4 5 вы можете использовать эту возможность для ввода в строку, а затем разобрать его в строку массив.

Scanner scan=new Scanner(System.in); 
String line[] = scan.nextLine().split(" "); //split by space 
for(int i=0;i<line.length;i++){ 
int val = Integer.parseInt(line[i]); 
int cube = val*val*val; 
} 
Смежные вопросы