繁体   English   中英

镜像阵列

[英]Mirroring an array

我正在尝试镜像一个数组。 换句话说,如果我创建一个看起来像这样的数组(用户指定大小):

0 2 4 6 7
8 9 10 11 12

镜像后,它应如下所示:

 0 2 4 2 0
 8 9 10 9 8

但是,当我将其设置为3 x 5或更大的数组时,它将不起作用。 它重复相同的数字,如下所示:

0 2 4 2 2
8 9 10 8 8

到目前为止,这是我的代码:

import java.util.Scanner;
 public class Mirror {
public static void main (String [] args)
{

    Scanner kb = new Scanner (System.in);
    System.out.println("Please enter number of rows: ");
    int rows = kb.nextInt();

    System.out.println("Please enter number of columns:");
    int columns = kb.nextInt();

    int [][] mirror = new int [rows][columns];

    int sum =0;

    for (int r = 0; r<mirror.length; r++)
    {
        for (int c = 0; c<mirror[r].length ; c++)
        {
            mirror[r][c]= sum;

            sum= sum+2;
        }
    }

    for (int r = 0; r<mirror.length; r++)
    {
        for (int c = 0; c<mirror[r].length ; c++)
        {
        System.out.print (mirror[r][c]+ " ");
        }
        System.out.println();

    }

    int add = 0;
    for (int r = 0; r<mirror.length; r++)
    {
        for (int c = mirror[r].length/2 +1; c<mirror[r].length ; c++)
        {
            for (int x= 0; x<mirror[r].length/2; x=x++)
            {
                mirror[r][c] = mirror [r][x];

            }

        }
    }

    System.out.println();

    for (int r = 0; r<mirror.length; r++)
    {
        for (int c = 0; c<mirror[r].length ; c++)
        {
        System.out.print (mirror[r][c]+ " ");
        }
        System.out.println();

    }
}

  }

你们对我的问题在哪里有任何想法吗? 我尝试调试,但是找不到问题。 抱歉,谢谢,我是初学者。

您正在执行不必要的循环。

尝试更改此:

for (int r = 0; r<mirror.length; r++)
{
    /*for (int c = mirror[r].length/2 +1; c<mirror[r].length ; c++)
    {
        for (int x= 0; x<mirror[r].length/2; x=x++)
        {
            mirror[r][c] = mirror [r][mirror[r].length/2 +1 -c];

        }

    }*/

    for(int c=0; c<mirror[r].length; c++){
        if(c<mirror[r].length/2.0)
            mirror[r][mirror[r].length-1-c] = mirror[r][c];
    }
}

您只需要为一行执行一个循环,在此循环中使用if(检测中间),就可以做您想做的事情。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM