2014-12-20 5 views
-1

в этом коде я не хочу принимать. те же тестовые корпуса с клавиатуры и остальными - та же проблема. только то, что я делаю, похоже. если я возьму 2 тестовых примера, тогда он будет печатать результат, основанный на обоих случаях, после ввода полного ввода. Например: INPUT testcases: 2 // case1 // 5 (no of building) 7 5 2 11 1 // case2 // 3 (номер здания) 1 2 3 OUTPUT 7 // OUTPUT FOR 1ST CASE // 0// OUTPUT FOR 2ND CASE // HOPE, NOW PROBLEM IS CLEAR import java.util.Scanner; общественного класса Komal {сравнение b/w элементов массива

/** 
* @param args 
*/ 
public static void main(String[] args) { 
    // TODO Auto-generated method stub 
    Scanner sc = new Scanner(System.in); 
     System.out.println("enter the test cases"); 
     int T=sc.nextInt(); 
     for(int i=1;i<=T;i++) 
     { 
     System.out.println("total no of building"); 
     int n=sc.nextInt(); 
     int ar[]=new int[n]; 
     for(int j=0;j<n;j++) 
     { 
     System.out.println("enter the heights"); 
     ar[j]=sc.nextInt(); 

     } 


     for(int j=1;j<ar.length;j++) 
     {int sum=0; 
     if(ar[0]<ar[i]) 
       { 
       break; 
       }else 
       { 
       sum += (ar[0]-ar[i]); 

       } 
     System.out.println(sum); 
     } 


     } 
} 

}

+0

Пожалуйста, покажите нам код, который вы пробовали, и точно описать, где вы столкнулись с трудностями. – yole

+0

Yole: Эй, парень теперь, пожалуйста, посмотрите на проблему, надеюсь, теперь вы поймете, что я хочу делать? –

+0

Я понимаю, что вы хотите сделать. Я до сих пор не вижу кода, который вы пробовали. – yole

ответ

0

попробовать это:

public static int SumUntilBigger(int[] a) 
{ 
    int sum=0; 
    for(int i=1;i<a.length;i++) 
    { 
     if(a[i]<=a[0]) 
     sum+=a[0]-a[i]; 
     else 
     return sum;    
    } 
    return sum;//will reach this statement if all the elements are bigger than the first one 
} 

это сравнивает каждый элемент с первым элементом и когда элемент больше он просто возвращает сумму и выход из метода, если все элементы больше, чем первая, просто возвращает сумму всех различий.
вы можете использовать его в основной, как это:

public static void main(String[] args) 
{ 
    Scanner s=new Scanner(System.in); 
    System.out.println("enter the size of the array"); 
    int size=s.nextInt(); 
    int[] a=new int[size]; 
    System.out.println("enter the array values"); 
    for(int i=0;i<size;i++)   
     a[i]=s.nextInt(); 
    System.out.println("The differences sum : "+SumUntilBigger(a)); 
} 
+0

что общий случай? создавая отдельный метод для алго? – varun

+0

нет, обработка любого массива не только {5,4,2,7,1} – niceman

+0

вы имеете в виду, что спрашиваете пользователя для ввода? – varun

2

Вот полный код. К счастью, у меня был мой ноутбук, и это не очень сложная программа.

public class TillGreater{ 

public static void main(String args[]){ 

    int[] ar = {5,4,2,7,1}; 
    int sum=0; 

    for(int i = 1 ; i < ar.length;i++){ 

     if(ar[0]<ar[i]){ 
      break; 
     }else{ 
      sum = sum + (ar[0]-ar[i]); 
     } 

    } 

    System.out.println(sum); 


} 

}

+0

хороший ответ, но не общий случай – niceman

+1

Thnx много !! Получил это :) –

Смежные вопросы