比较数组的b / w元素

时间:2014-12-20 19:29:55

标签: java arrays algorithm arraylist

在这段代码中,我想不接受。键盘输入和休息的测试用例是同样的问题。只有我在做的就像。如果我接受2个测试用例,那么在完成输入后,根据两个案例打印结果。例如:INPUT测试用例:2 // case1 // 5(无建筑物)7 5 2 11 1 // case2 // 3(建筑物编号)1 2 3输出7 //输出1ST CASE // 0 / /输出第二个案例//希望,现在问题是清楚的 import java.util.Scanner; 公共课Komal {

/**
 * @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);
       }


      }
}

}

2 个答案:

答案 0 :(得分: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);


}

}

答案 1 :(得分: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));
}