java数组倒置问题

publicclass数组赋值等于下标并倒置{/***@paramargs*/publicstaticvoidmain(String[]args){//TODOAuto-... public class 数组赋值等于下标并倒置 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int a[]=new int[10];
int b[]=new int[10];
for(int i=0;i<a.length;i++){
a[i]=i;
b[i]=a[a.length-1-i];
}
System.out.print("a[]=");
print(a);
System.out.print("\nb[]=");
print(b);
}
public static void print(int temp[]){
for(int i=0;i<temp.length;i++){
System.out.print(temp[i]);
}
}
}
为什么结果是
a[]=0123456789
b[]=0000043210
如果修改?
展开
 我来答
历盆郁7
2012-10-31 · TA获得超过4277个赞
知道大有可为答主
回答量:1795
采纳率:100%
帮助的人:957万
展开全部
int型数组,初始化每个元素都是0,
如你的a和b,都是10个0

你再循环里面为a和b赋值的时候
当i=0 a[i] = i = 0 b[i] = a[a.length-1-i] = a[9] = 0.
...(类推)
所以得到你的结果

想要正确的结果

用两个for循环
第一个for为a赋初值
第二个for为b赋初值
百度网友3ae3389
2012-10-31 · TA获得超过249个赞
知道小有建树答主
回答量:215
采纳率:0%
帮助的人:108万
展开全部
public class Str {
public static void main(String[] args) {

int a[]=new int[10];//已知的数组
int b[]=new int[10];

for(int i=0;i<a.length;i++){
a[i]=i;//将数组a赋值

//b[i]=a[a.length-1-i];//你初始化数组的是时候默认的全是0
}
//可以在加上下面代码
for(int i=0;i<a.length;i++){
b[i]=a[a.length-1-i];
}
System.out.print("a[]=");
print(a);
System.out.print("\nb[]=");
print(b);
}
public static void print(int temp[]){
for(int i=0;i<temp.length;i++){
System.out.print(temp[i]);
}
}
}

经测试 符合你的要求 并将你的错误指出 希望对你有所帮助 谢谢!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
maoyuan55
2012-10-31 · TA获得超过342个赞
知道小有建树答主
回答量:172
采纳率:100%
帮助的人:149万
展开全部
看好了额。
for(int i=0;i<a.length;i++){
a[i]=i;
b[i]=a.length-1-i;
//这一行不是a[a.length-1-i];,当初始化时,a中的所有数据都是零,
//b[0]=a[9],a[9]==0;
//b[1]=a[8],a[8]==0;
//......
//b[5]=a[4],a[4]==4;
//......
//b[9]=a[0],a[0]==0;
}
解决了,不用谢。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
帐号已注销
2012-10-31 · TA获得超过4630个赞
知道大有可为答主
回答量:1345
采纳率:50%
帮助的人:1639万
展开全部
很正常,以i=0来说,此时执行a[i] = i,也就是说a[0] = 0,接着是b[i]=a[a.length-1-i],也就是b[0]=a[10-1-0]=a[9],因为此时a[9]还没有赋值,默认的是0,所以b[0]=0,而不是你预期的9。当i=5时,a[4]=4,a[5]=5,则b[5]=a[10-1-5]=a[4]=4,所以接着当i=6,7,8,9时,b[i]就都有值了。

要么你直接b[i]=a.length-i,要么你再次for循环,将a[a.length - 1 - i]的值赋给b[i]。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ping3021
2012-10-31 · TA获得超过488个赞
知道小有建树答主
回答量:378
采纳率:0%
帮助的人:289万
展开全部
a[i]=i;
//在这里 增加 System.out.print(a.length); 看看输出就明白了
b[i]=a[a.length-1-i];
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式