java实现一个数组倒序后和另一个数组相加,这样写有什么问题?

publicstaticvoidmain(String[]args){int[]a={1,2,4,5,8};int[]b={2,3,4,5,9};Testtest=new... public static void main(String[] args)
{
int[] a = {1,2,4,5,8};
int[] b = {2,3,4,5,9};
Test test = new Test();

System.out.println(test.arrAdd(a, b));
}
public int[] arrAdd(int[] a,int[] b)
{
int temp;
int[] outArry = new int[a.length];
for(int i=0;i<=b.length/2;i++)
{
temp = b[i];
b[i]=b[b.length-1-i];
b[b.length-1-i]=temp;
}
for(int j=0;j<a.length;j++)
{
outArry[j]=a[j]+b[j];
}
return outArry;
}
展开
 我来答
百度网友ca390969e
2012-11-05 · TA获得超过389个赞
知道小有建树答主
回答量:548
采纳率:0%
帮助的人:299万
展开全部
有错误,你的for循环的结束条件是有问题的,应该是i < b.length / 2才对。
因为对于一个偶数个数的数组做反序,我们只需要对调length / 2次,这是没错的,但是java的数组起始位置是0,相当于执行到length / 2 - 1的时候,数组就已经反序好了,但是你又多执行了一次,结果导致的就是最中间的两个数又变回去了。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友0b175ed
2012-11-07 · TA获得超过468个赞
知道小有建树答主
回答量:453
采纳率:0%
帮助的人:324万
展开全部
真正的问题是效率太低了 童鞋,看这个

public static void main(String[] args){
int[] a = {1,2,4,5,8};
int[] b = {2,3,4,5,9};
int length=a.length;
for (int i = 0; i < length; i++) {
System.out.print(a[i]+b[length-i-1]+",");
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
enolong
2012-11-05 · TA获得超过1174个赞
知道小有建树答主
回答量:590
采纳率:100%
帮助的人:376万
展开全部
有什么问题?结果就是:10,7,8,8,10呀,对的呀。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2012-11-05
展开全部
你运行时出了啥问题啊?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式