2016-12-19 2 views
1

Wir haben zwei diff-Arrays, d. H. array1 & array2. Finde ihre Summe einzeln und vergleiche sie. ihre Summe und drucken '-1', wenn die Summe der ersten Array ist weniger als die zweite Array sonst Drucken '1'.
die Summe zweier Array-Elemente einzeln vergleichend

int array1[] = new int[3]; // array one 
    int array2[] = new int[3]; // array two 
    int sum1= 0, sum2= 0; 

    for(int i=0; i<=2; i++){ 
    array1[i] = scanner.nextInt(); // storing value by user in first array 
    array2[i] = scanner.nextInt(); // storing value by user in second array 
    } 

    for(int a1 : array1){ 
     sum1 += a1; // sum of array 
    } 
    for(int a2 : array2){ 
     sum2 += a2; // sum of array2 
    } 

    if(sum1<sum2){ 
     System.out.print("-1");} //print -1 if sum1 is less than sum2 
    else{ 
     System.out.println("1");} 

Ich versuche, dieses Programm so kompakt wie möglich zu tun, aber ich weiß nicht, wie dies zu tun. Kann mir jemand sagen, das kompakte Programm für diesen Code

+0

Sie können die Eingänge hinzufügen, sobald sie kommen. –

+1

Sie können die letzten vier Zeilen durch 'System.out.println (sum1 Pshemo

+0

Ist die Reihenfolge der Eingabe korrekt? Ich würde zuerst das erste Array und dann das zweite, nicht verschachtelte Elemente erwarten. –

Antwort

1

Sie können Ihre 3 Schleifen mit einer einzigen Schleife ersetzen:

for(int i=0; i<=2; i++){ 
    array1[i] = scanner.nextInt(); // storing value by user in first array 
    array2[i] = scanner.nextInt(); // storing value by user in second array 
    sum1 += array1[i]; 
    sum2 += array2[i]; 
} 
+0

Danke @Eran ............... –

0

Versuchen Sie folgendes:

int sum1 = Arrays.stream(array1).sum(); 
int sum2 = Arrays.stream(array2).sum(); 
int result = Integer.compare(sum1, sum2); //-1, 0 or 1 
System.out.println("" + result); 

Oder kürzer:

System.out.println("" + Integer.compare(Arrays.stream(array1).sum(), Arrays.stream(array2).sum())); 
Verwandte Themen