首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将一维数组放入可变大小java的矩阵中。

将一维数组放入可变大小java的矩阵中。
EN

Stack Overflow用户
提问于 2014-11-30 02:09:07
回答 2查看 477关注 0票数 1

我正在做这份工作,遇到了一些困难,在我继续工作之前,我需要解决这个问题。

我正在构建一个程序,允许用户声明一个板的大小,取这个板的大小,并填充一个由'O's组成的正方形。最终,这个程序将被重新操作,允许用户输入x和y坐标,并在此时出现一个x。这只是作业的第一部分,然后我才能继续操作最终的结果--我已经输入了输入,我相信我已经计算好了数组,它本身就能保证一个正方形,

我被困的地方是把O印在正方形上。

例如,用户输入一个5的板大小系统应该打印出来。

代码语言:javascript
复制
 OOOOO
 OOOOO
 OOOOO
 OOOOO
 OOOOO  

我试过检查我的课本和谷歌之类的东西,但没有找到可行的方法。

这是我的密码

代码语言:javascript
复制
import java.util.Scanner;
import java.util.*;
import java.io.*;

public class Board {


@SuppressWarnings("empty-statement")
public static void main(String[] args) throws IOException 
{

    // declares brdsz for board size total, n for input, xco and yco for later date
    int brdsz = 0;
    int n = 0;
    int xco = 0;
    int yco = 0;
    int x = 0;

    System.out.println("The BOARD =version 1.00= (enter -1 to quit)");
    System.out.println("===========================================");
    BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
    System.out.print("Please enter the side length of the board:");
    n = Integer.parseInt(br.readLine());
    brdsz = n * n;
    int[] coodArray = new int[brdsz];
    Arrays.fill(coodArray, 'O');


    System.out.println("Creating " + n + " X " + n + " board..."); 
    System.out.print("Please enter the x-coordinate: ");
    xco = Integer.parseInt(br.readLine());
    System.out.print("Please enter the y-coordinate: ");
    yco = Integer.parseInt(br.readLine());

  }
}

赋值指出,这必须使用一维数组复制2d板。

到目前为止,我正在尝试打印基本输出,稍后我将输入我的if语句作为附加条件。

这是示例输出

板=版本1.00= (输入-1退出)

========================================

请输入板的边长:5输入

创建5x5板..。

好了。

请输入x-坐标:3输入

请输入y-坐标:2输入

标记位置(3,2).

奥多欧

奥克索

奥多欧

奥多欧

奥多欧

========================================

请输入x-坐标:4输入

请输入y-坐标:1输入

标记位置(4,1).

OOOXO

奥克索

奥多欧

奥多欧

奥多欧

========================================

请输入x-坐标:3输入

请输入y-坐标:2输入

位置(3,2)已经标记.

OOOXO

奥克索

奥多欧

奥多欧

奥多欧

========================================

本质上,我想做的是,如果你输入一个5的边长,它会写一个25长的数组(5*5)填充字母O。

示例数组值0-4在第1行,5-9在第2行,等等.

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-11-30 02:22:12

你需要一个二维数组

例如,,假设x = new int[3][4]x[0]x[1]x[2]是一维数组,每个数组都包含四个元素,如图x.length is 3所示,x[0].lengthx[1].lengthx[2].length都是4

如何遍历和不使用2D数组,您可以在蓝图中遵循以下示例

票数 1
EN

Stack Overflow用户

发布于 2014-11-30 04:17:49

2D数组并不是完全必要的(我没有经常使用它们),但是与保持一维数组相比,它们是有益的。

对于使用一维数组,它的工作方式是这样的(假设用户输入5表示板的大小)。你需要跟上尺寸(或宽度和高度)

代码语言:javascript
复制
int[] myArray = new int[size * size]; // or if specified, it can be new int[width * height]

然后,要想找到一种方法来达到目的,就是这样做:

代码语言:javascript
复制
int x = 3;
int y = 4;
int point = myArray[x + y * width];

myArray[x + y * width]将给出数组中所提供的x和y的点,而左上角是(0,0):

代码语言:javascript
复制
 [ O O O O O O O O O O O O O O O O O O O O O O O X O ]

 O O O O O
 O O O O O
 O O O O O 
 O O O O O
 O O O X O

那么,如果是x = 2 & y = 0,我们将拥有:

代码语言:javascript
复制
 [ O O X O O O O O O O O O O O O O O O O O O O O O O ]

 O O X O O
 O O O O O
 O O O O O 
 O O O O O
 O O O O O

这是因为数组根据宽度循环。因此,如果x为5,y为0,则如下所示:

代码语言:javascript
复制
 [ O O O O O X O O O O O O O O O O O O O O O O O O O ]

 O O O O O
 X O O O O
 O O O O O 
 O O O O O
 O O O O O
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27209271

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档