2017-06-11 15 views
-2

Ich schrieb ein Programm, um zwei Arrays von je 10 Elementen einzugeben, sie in ein anderes Array zusammenzuführen, die doppelten Elemente zu entfernen. Während der Eingabe endet der Eingabeprozess nicht bei 10 Elementen für arr2, er geht ohne Unterbrechung weiter.Unbegrenzte Eingabe in JAVA

import java.util.*; 
class ReDep 
{ 
public static void main() 
{ 
    Scanner sc=new Scanner(System.in); 
    System.out.println("Enter the values of arr1"); 
    int arr1[]=new int[10]; 
    int arr2[]=new int[10]; 
    int arr3[]=new int[20]; 
    int i,j,k,l,g,h,n,c,d,size,f; 

    for(i=0;i<10;i++) 
    { 
     arr1[i]=sc.nextInt(); 

    } 
    System.out.println("Enter the values of arr2"); 
    for(f=0;f<10;f++) 
    { 

     arr2[f]=sc.nextInt(); 
    } 
    System.out.println(); 

    for(j=0;j<10;j++) 
    { 
     arr3[j]=arr1[j]; 
     arr3[j+10]=arr3[j]; 
    } 
    for(k=0;k<19;k++) 
    { 
     for(l=0;l<=19-(k+1);l++) 
     { 
      if(arr3[l]>=arr3[l+1]) 
      { 
       c=arr3[l]; 
       arr3[l]=arr3[l+1]; 
       arr3[l+1]=c; 
      } 
     }} 
    size=19; 
    for(g=0;g<size;g++) 
    { 
     if(arr3[g]==arr3[g+1]) 
     { 
      n=g+1; 
      while(n<=size) 
      { 
       arr3[n]=arr3[n+1]; 
      } 
      size--; 
     } 
    } 
    for(d=0;d<20;d++) 
    { 
     System.out.println(arr3[d]); 
    } 
} 
} 

Was ist falsch an meinem Code?

+1

Verwenden Sie in der Zukunft bitte zuerst einen Debugger, bevor Sie eine Frage stellen, die im Grunde nur ein Tippfehler oder ein unvorsichtiger Fehler ist. Oder wenn Sie noch nicht wissen, wie man einen Debugger benutzt, dann streuen Sie den Code mit println-Anweisungen, aber machen Sie zuerst wieder ein Debugging. –

Antwort

1

Sie haben eine unendliche, während Sie nicht erhöht haben n oder -abnahme Größe:

while(n<=size) 
{ 
    arr3[n]=arr3[n+1]; 
} 

u haben, um es zu erhöhen :)

while(n<=size) 
{ 
    arr3[n]=arr3[n+1]; 
    n++; // or size--; 
} 
0
for(j=0;j<10;j++) 
{ 
    arr3[j]=arr1[j]; 
    //change arr3[j] to arr2[j] 
    arr3[j+10]=arr2[j]; 
} 

Und Ihre Hauptmethode Unterschrift beheben.

+0

Warum sollte ich arr3 [j] in arr2 [j] ändern? – MrAP

+0

Weil Sie nur Werte innerhalb arr3 Array selbst ohne es kopieren. – aydinugur

+0

Ich habe Ihren Standpunkt nicht verstanden. Ich füge die Elemente von arr1 und arr2 zu arr3 zusammen. – MrAP