java - 通过将数组迭代到一半来反转数组时出现错误
问题描述
我试图通过将数组运行到一半来反转数组,这样如果它有奇数个元素,则中间的元素被省略,因为不需要交换它,如果它是偶数,那么每个元素都将被交换,但我不知道我错在哪里。
import java.io.*;
import java.util.*;
public class Main{
public static void main(String[] args) throws Exception {
// write your code here
Scanner scn = new Scanner(System.in);
int x = scn.nextInt();
int[] arr = new int[x];
for(int i = 0 ; i < arr.length ; i++)
{
arr[i] = scn.nextInt();
}
int temp = x;
for(int i = 0 ; i < temp / 2 ;i++)
{
int temp1 = arr[i];
arr[i] = arr[x - 1];
arr[x - 1] = temp1;
x--;
}
for(int z=0;z<arr.length;z++)
{
System.out.println(arr[z]);
}
}
}
解决方案
你的尝试非常接近。请参阅以下内容进行更改。
for(int i = 0 ; i < temp / 2 ;i++)
{
int temp1 = arr[i];
arr[i] = arr[x - 1]; // should be arr[x - i - 1]
arr[x - 1] = temp1; // should be arr[x - i - 1]
x--; // delete this line
}
推荐阅读
- javascript - Is there a way to set all of the entries of a map to a value
- reactjs - React Native Background Timer 在 x 时间后执行操作
- python - Why won't my tkinter window move further than 1 pixel?
- tfs - MSBuild is not installed on TFS controller when I installed VS 2017
- javascript - 如何使用 Javascript 从数据库中显示网站上的图像?
- ios - iOS 应用程序和地理编码的 Google Maps API 密钥限制
- typescript - Angular 中的模型
- html - 使用 css 选择器 jsoup 解析 html
- php - 如何使用 php 从 .ini 文件中删除部分
- typescript - 在 Yarn 工作区中使用 Typescript 引用时如何添加自定义类型定义?