在这段代码中,我想不接受。键盘输入和休息的测试用例是同样的问题。只有我在做的就像。如果我接受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);
}
}
}
}
答案 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));
}