Java-java反转数组的问题

发布于 2016-10-29 05:57:26 字数 754 浏览 1166 评论 4

小弟不才,自己想写个通过算数方法反转数组,没效果T T,不知道是设计思路有问题还是逻辑没搞好,代码如下:

public static void main(String[] args) {
int sum = 0;
int[] arr = new int[5];
int j = arr.length-1 ;
int temp;
Scanner s = new Scanner(System.in);
for (int i = 0; i < 5; i++) {
System.out.println("第" + (i + 1) + "个数字 :");
arr[i] = s.nextInt();
}

System.out.println("n倒叙输出是");
for (int a = 0; a < 5; a++, j--) {
temp = arr[a] + arr[j];
arr[a] = temp - arr[a];
arr[j] = temp - arr[a];

}
for (int b : arr) {
System.out.print(b + "t");
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

晚风撩人 2017-06-27 01:08:19

方法1,
已经有这样的轮子了,直接用类库Commons.Lang处理;
ArrayUtils.reverse(int[] array)

方法2,
for(int i = 0; i < validData.length / 2; i++)
{
int temp = validData[i];
validData[i] = validData[validData.length - i - 1];
validData[validData.length - i - 1] = temp;
}

灵芸 2017-05-20 00:19:08

逻辑有问题,将翻转的循环改为如下:

for (int a = 0; a < arr.length / 2; a++, j--) {
temp = arr[a] + arr[j];
arr[a] = temp - arr[a];
arr[j] = temp - arr[a];
}

夜无邪 2017-03-27 12:40:00

也可以通过牺牲空间的方式,new一个新的数组然后逆序复制

 int[] newArray = new int[arr.length];
for (int i = 0; i < arr.length; i++) {
newArray[i] = arr[arr.length - 1 -i];
}

arr = newArray;

想挽留 2017-03-22 12:10:57

我用的是栈来实现的。

 public class Reverse {
public static void main(String[] args) {
Stack mStack = new Stack();
Scanner s = new Scanner(System.in);
for (int i = 0; i < 5; i++) {
System.out.println("第" + (i + 1) + "个数字 :");
mStack.push(s.nextInt());
}
while(!mStack.empty()){
System.out.println(mStack.pop());
}
}
}

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文