package round1;
import java.util.Scanner;
public class MathewJhon {
int i = 0;
public static void main(String[] args) {
Scanner scn = new Scanner(System.in);
int x = scn.nextInt();
int y = scn.nextInt();
int nth = scn.nextInt();
int a[] = genrate(x, y);
System.out.println(x + " " + y + " " + nth);
}
private static int[] genrate(int x, int y) {
for(int i=1;i<y;i++){
int val=(i*(i+1))/2;
int a[]= new int[y];
a[i]=val;
}
return a;
}
}
问问题
99 次
2 回答
6
您需要在方法范围内声明您的数组:
private static int[] genrate(int x, int y) {
int a[] = new int[y];
for(int i=1; i<y; i++){
int val = (i*(i+1))/2;
a[i] = val;
}
return a;
}
当您在循环中声明变量时,它只存在于该循环中。
请注意,您的原始方法每次通过循环创建一个新数组,因此您没有用值填充单个数组(就像您显然想要的那样)。此外,该参数x
似乎没有被使用;这可能是另一个错误吗?
于 2013-08-13T18:12:41.240 回答
2
在这种情况下,您的数组范围仅限于for
循环。尝试这个:
private static int[] genrate(int x, int y) {
int a[] = new int[y];
for(int i=1;i<y;i++){
int val=(i*(i+1))/2;
a[i]=val;
}
return a;
}
当您在 Java 中的循环或方法内声明任何类型的变量时,无法在该循环或方法之外访问它。
于 2013-08-13T18:12:55.453 回答