2016-05-25 11 views
0

Es wurde ein Programm erstellt, um einen Würfel aus einzelnen Ganzzahlen in einer durch Leerzeichen getrennten Zeile zu finden.Wie kann ich wissen, was der logische Fehler ist?

Dies ist das Programm. Es hat einen logischen Fehler. Es funktioniert für jeden Fall, in dem die Eingabe ein Zeichen ist.

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(); 
    } 
} 

Eingang wird durch Online-Compiler gegeben: 1 2 3 4 5 oder beliebige Länge

+0

Was ist Ihre Ausgabe und was erwarten Sie? –

+3

Die Antwort auf Ihre aktuelle Frage lautet 'debugging' – SomeJavaGuy

+0

@JohannisK Eingabe wird über den Eingabebereich eines Online-Compilers eingegeben. Ich habe kompiliert und korrekte Ausgabe erhalten. aber die Testfälle können nicht übergeben werden –

Antwort

0

Wenn der Eingang in einzelnen Zeilen als 1 2 3 4 5 ist, können Sie diese Eingabe als String zu nehmen verwenden und es dann zu String parsen Array.

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; 
} 
Verwandte Themen