2017-02-25 2 views
0
import java.util.*; 
public class Main { 

     Scanner input = new Scanner (System.in); 
     int n = 0, tn = 0, time = 0;int sum=0; 
     int t = input.nextInt(); //no. of test cases 
     for (int i =0; i<t; i++) 
     { 
      n = input.nextInt();//no. of timings   
      for (int j = 0; j<n; j++) 
      { 
       tn = input.nextInt(); //individual time 

       sum=0; 
       sum+=tn; 
       sum*=2; 
      } 
      System.out.println(t+". "+sum); 
     } 

    } 
} 

My outputnicht die tatsächliche Ausgabe für den folgenden Code erhalten:

output I am supposed to get

Kann mir jemand sagen, wo ich schief gelaufen?

Antwort

1

1.) Sie sind jedes Mal sum=0 einstellen, während neue Eingabe nehmen, so dass Sie die vorherigen Werte zu verlieren, werden daher das letzte Mal

sum=30 
sum= 30*2 = 60 

so die sum=0 zurückgesetzt, wenn Sie mit Ihrem ersten Fall Eingabe fertig sind

2.) Sie müssen die Multiplikation tun, nachdem Sie Add-up alle Werte tun so einfach die Multiplikation, wenn Sie die sum aller individual time Werte haben

for (int i = 0; i < t; i++) { 
    n = input.nextInt();// no. of timings 
    for (int j = 0; j < n; j++) { 
     tn = input.nextInt(); // individual time 
     // add all values first 
     sum += tn; 
    } 
    // multiply the total of values with 2 
    System.out.println(i + ". " + (sum * 2)); 

    // now set sum=0 for next case 
    sum = 0; 
} 
Output

Testfall:

2 
3 
10 
20 
30 
2. 120 // output of first case 
2 
100 
50 
2. 300 // output of second case 
+0

@Madhurya Krishnan hat etwas schief gelaufen ist? –

+1

danke, es funktioniert perfekt! –

+0

ja ich tat es gerade jetzt :) –

Verwandte Themen