java 提示错误Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
importjava.io.*;publicclassFibonacci{intn;intf[]=newint[n+1];intgetN()throwsIOExcepti...
import java.io.*;
public class Fibonacci {
int n;
int f[]=new int[n+1];
int getN() throws IOException{
String inputString;
System.out.println("请输入n: ");
BufferedReader a=new BufferedReader(new InputStreamReader(System.in));
inputString=a.readLine();
n=Integer.parseInt(inputString);
return n;
}
public static void main(String[] args) throws IOException {
Fibonacci a=new Fibonacci();
int n1 = a.getN();
a.f[0]=0;
a.f[1]=1;
a.f[2]=1;
for(int i=3;i<=n1;i++){
a.f[i]=a.f[i-1]+a.f[i-2];
System.out.println("F["+i+"]是"+a.f[i]);
a.f[i-1]=a.f[i];
a.f[i-2]=a.f[i-1];
}
}
}
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
at Fibonacci.main(Fibonacci.java:19) 展开
public class Fibonacci {
int n;
int f[]=new int[n+1];
int getN() throws IOException{
String inputString;
System.out.println("请输入n: ");
BufferedReader a=new BufferedReader(new InputStreamReader(System.in));
inputString=a.readLine();
n=Integer.parseInt(inputString);
return n;
}
public static void main(String[] args) throws IOException {
Fibonacci a=new Fibonacci();
int n1 = a.getN();
a.f[0]=0;
a.f[1]=1;
a.f[2]=1;
for(int i=3;i<=n1;i++){
a.f[i]=a.f[i-1]+a.f[i-2];
System.out.println("F["+i+"]是"+a.f[i]);
a.f[i-1]=a.f[i];
a.f[i-2]=a.f[i-1];
}
}
}
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
at Fibonacci.main(Fibonacci.java:19) 展开
9个回答
展开全部
= = for循环里面 i=3 然后还是递增的。。 你里面总共才3个数 最多也只有a.f[2]呀巧伏戚 ,就没有a.f[3]
a.f[3]代表第四个数了, 你没有第四个数。所孝陵以数组超出范围了
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1这个也可以看出
Array是数组意思对把 index就是索引意思对把 out 就是超出的意思 合起来看这个厅滚提示错误 就是你的数组超出了范围了。希望能让你学到~
a.f[3]代表第四个数了, 你没有第四个数。所孝陵以数组超出范围了
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1这个也可以看出
Array是数组意思对把 index就是索引意思对把 out 就是超出的意思 合起来看这个厅滚提示错误 就是你的数组超出了范围了。希望能让你学到~
展开全部
在输入数字之前数组f[]已经创建完了,数组长度为1,再输入数字也没有用了,凳顷所以喊雀改为
int[] f;
int getN() throws IOException {
String inputString;
System.out.println("请输枣渗陆入n: ");
BufferedReader a = new BufferedReader(new InputStreamReader(System.in));
inputString = a.readLine();
n = Integer.parseInt(inputString);
f = new int[n + 1];
return n;
}
int[] f;
int getN() throws IOException {
String inputString;
System.out.println("请输枣渗陆入n: ");
BufferedReader a = new BufferedReader(new InputStreamReader(System.in));
inputString = a.readLine();
n = Integer.parseInt(inputString);
f = new int[n + 1];
return n;
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2018-07-28 · 为您提供更好的产品和服务
七彩虹科技有限公司
七彩虹科技成立于1995年,中国著名的DIY硬件厂商, 亚太区最重要的显示卡提供商之一。专注于IT硬件产品研发、生产和销售,致力于为个人和企业用户提供最具创新与实用价值的硬件产品及应用方案。
向TA提问
关注
展开全部
你的args[]定义的是String数组 只给args[]数组声明 没给它分配缓李空间 所以运行后晌哪纯出现的错误的意思是下标越界,代码如下:宴咐、 public class b { public static void main(String args[]){ args=new String[3]; System.out.println("hi!"+args[0]+" "+args[1]+" " +args[2]); } } 加args=new String[3];是个它分配空间你有args[0],args[1],args[2]三个所以是String[3],还可以给这数组赋值,如args[0]=new String("java")
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Fibonacci 类雀嫌扒中的int n没有显示的给出具体的值,在new Fibonacci ()的时候得到的n是他的默认值0,所以数组f的长度是1,但是a.f[1]=1;已经是第者大二个元素了所顷昌以报ArrayIndexOutOfBoundsException异常。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
int n;
int f[]=new int[n+1];
n默认为0,f数组永远是凯轮告只有1个int的数组,你桐老应该在取得n之后再盯明创建数组。
int f[]=new int[n+1];
n默认为0,f数组永远是凯轮告只有1个int的数组,你桐老应该在取得n之后再盯明创建数组。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |