初学java,下面的代码不知道什么问题,无法运行。。。
publicclasstest{publicstaticvoidmain(String[]args){inta[]=newint[10];for(inti=0;i<10;...
public class test {
public static void main(String[]args){
int a[]=new int[10];
for(int i=0;i<10;i++){
a[i]=i;
}
for(int i=10;i>0;i--){
System.out.print("a["+i+"]"+a[i]+" ");}
}
}
我找到问题在哪里了!第一个循环没有a[10]。。。 展开
public static void main(String[]args){
int a[]=new int[10];
for(int i=0;i<10;i++){
a[i]=i;
}
for(int i=10;i>0;i--){
System.out.print("a["+i+"]"+a[i]+" ");}
}
}
我找到问题在哪里了!第一个循环没有a[10]。。。 展开
4个回答
展开全部
for(int i= 9;i>=0;i--){
System.out.print("a["+i+"]"+"="+a[i]+";");
}
因为你for循环里的i是<10的,意思就是0~9(数组越界),这样就ok了,输出结果是:
a[9]=9;a[8]=8;a[7]=7;a[6]=6;a[5]=5;a[4]=4;a[3]=3;a[2]=2;a[1]=1;
System.out.print("a["+i+"]"+"="+a[i]+";");
}
因为你for循环里的i是<10的,意思就是0~9(数组越界),这样就ok了,输出结果是:
a[9]=9;a[8]=8;a[7]=7;a[6]=6;a[5]=5;a[4]=4;a[3]=3;a[2]=2;a[1]=1;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
第一个for循环数组下标为0到9,而你的第二个for循环你是从a[10]开始输出的。所以你错在第二个循环的i赋值上面啦,应该为for(int i=9;i>=0;i--){ System.out.print("a["+i+"]"+a[i]+" ");} }}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
把0~9赋值给数组a
然后逆序输出数组
输出的你写错了 数组越界
改成:
for(int i= 9;i>=0;i--){
System.out.print("a["+i+"]"+a[i]+" ");}
}
希望对你有帮助
然后逆序输出数组
输出的你写错了 数组越界
改成:
for(int i= 9;i>=0;i--){
System.out.print("a["+i+"]"+a[i]+" ");}
}
希望对你有帮助
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
数组定义成int[10] 下标是从0-9
所以第2个循环a[0]-a[9]
改为for(int i=9;i>0;i--) 你从10开始就会造成数组越界
所以第2个循环a[0]-a[9]
改为for(int i=9;i>0;i--) 你从10开始就会造成数组越界
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询