在java中获取变量范围内的输出错误

时间:2017-07-10 20:20:43

标签: java

我输错了。我为每种情况输出0作为输出。我知道这是因为错误使用了变量范围。限制元素应仅被声明为私有。

import java.io.*;
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;

class Difference {
private int[] elements;
public int maximumDifference;
// Add your code here
Difference(int elements[])
{
this.elements = elements;
}

int computeDifference()
{

int maximumDifference=0;
int l=elements.length;
for(int i=0; i<l; i++) 
{
for(int j=i+1; j<l; j++)  
{  
if (Math.abs(elements[i]-elements[j]) > maximumDifference){
maximumDifference = (Math.abs(elements[i]-elements[j]));
}
}
}
return maximumDifference;
}
} 

public class Solution {

public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[] a = new int[n];
for (int i = 0; i < n; i++) {
a[i] = sc.nextInt();
}
sc.close();

Difference difference = new Difference(a);

difference.computeDifference();

System.out.print(difference.maximumDifference);
}
}

2 个答案:

答案 0 :(得分:0)

下次请缩进代码。

您只需要在int中删除maximumDifference类型到computeDifference(),因为在该方法中,您将覆盖之前声明的类字段,当您调用时,它仍然等于0方法。

另一种解决方案只是在你的主要System.out.print(difference.computeDifference());,因为computeDifference()返回其范围内的变量,具有正确的值。

答案 1 :(得分:0)

您只需要进行一次更改。将difference.computeDifference()方法调用的结果分配给变量difference.maximumDifference

difference.maximumDifference= difference.computeDifference();

        System.out.print(difference.maximumDifference);