当前位置: 首页 > 知识库问答 >
问题:

将用户输入的数字推入2D数组以形成4列3行

闾丘选
2023-03-14

我正在做一个由两部分组成的任务,第一部分是创建一个由3行4列组成的数组,然后让用户输入4个数字组成第一行的第一列。因此,如果用户输入1,2,3,4,那么数组应该打印出来:(0对于任务的第二部分,为空。

1  2  3  4
0  0  0  0
0  0  0  0

到目前为止,这就是我所拥有的,但我只使用Java几天,我确信我没有清楚地看到我的错误。我真的很感谢任何帮助我做错了什么。

这是我的代码:

import java.util.Scanner;

public class multipleElements {
    public static void main(String[] args) {
        //set up the array and assign variable name and table size
        int[][] startNum = new int[3][4];

        //set user input variable for the array
        Scanner userInput = new Scanner(System.in);
        for (int i = 0; i < startNum.length; i++) {
            //get user input
            System.out.print("please enter your value: ");

            //push into the array
            String inputValue = userInput.nextInt();
            startNum[i][0] = inputValue;
            startNum[i][0] = userInput
        }
    }
}

至于任务的第二部分,第二行和第三行需要是该列第一行输入的任何数字的倍数。所以它看起来像这样:

1  2  3  4
2  4  6  8
3  6  9  12

我还不确定我要怎么做,所以任何关于我可以从哪里开始研究或者我应该研究什么的建议也将不胜感激。

共有2个答案

林昱
2023-03-14
for (int i = 0; i < startNum[0].length; i++) {
    // get user input
    System.out.print("please enter your value: ");

    // push into the array
    int inputValue = userInput.nextInt(); // <-- assign to an int value
    // assigns the user input to the columns of 0th row
    startNum[0][i] = inputValue; 

    //startNum[i][0] = userInput // <-- not required
}

for (int i = 1; i < startNum.length; i++) {
    for (int j = 0; j < startNum[0].length; j++) {
        // starting from 1st row calculate the values for all the rows
        // for a column and then move on to next column once finished
        startNum[i][j] = startNum[0][j] * (i + 1); 
    }
}
东门子昂
2023-03-14

请尝试以下代码:

public static void main(String[] args) {
    //set up the array and assign variable name and table size
    int[][] startNum = new int[3][4];

    //set user input variable for the array
    Scanner userInput = new Scanner(System.in);

    for (int i = 0; i < startNum[0].length; i++) {
        System.out.print("please enter your value: ");
        int inputValue = userInput.nextInt();
        startNum[0][i] = inputValue;
    }

    for (int i = 1; i < startNum.length; i++) {
        for (int j = 0; j < startNum[0].length; j++) {
            startNum[i][j] = (i + 1) * startNum[0][j];
        }
    }
}

在第一个循环中,您将从用户处获取值并设置2d数组的第一行。

在第二个for循环(2 fors)中,您将为第一行的每一列设置第二个和第三个循环的值。这就是为什么第一个for循环从i=1开始,第二个for循环从j=1开始。

 类似资料:
  • 所以我们刚刚进行了一个小的实践考试,要求我们阅读以下格式的输入,作为非图形问题的规则。实际的算法一点也不难做到,但我和我的伙伴们都不知道如何从一开始就扫描这些输入。 前两个整数表示行数(4)和列数。(4) 因此,接下来的四行表示每行的规则(1 2 3表示第2行),接下来的四行表示每列的规则(2 2表示第4列),依此类推。 在学习C语言一个学期后,我们只处理了每行具有相同列数的数组,在这个Java模

  • 我正在尝试填充一个NxN矩阵。我想做的是能够将给定行的所有元素作为一个输入输入。例如,如果我有一个4x4矩阵,对于每一行,我想在一个输入中输入4列,然后在每次输入后打印显示新值的矩阵。我尝试运行以下代码,但我得到一个错误:线程“main”中的异常java.util.InputMismatchException。这是我的代码: 当我得到输入4个数字的提示时,我输入以下内容: 然后我得到错误。

  • 任务是“编写一个程序,为用户输入的整数显示用户指示的倍数。” 我想我不需要一个完全直接的答案(尽管我确实想知道要使用的方法/公式),因为我想把这个作为一个学习经验,以便自己完成任务并从中学习。我真的想知道的过程和使用的方法,以及找到一个公式。: 我真的不确定如何编写一个代码,显示一个用户输入的整数的用户输入的数字。最难的部分似乎是编写循环公式。不知道从哪里开始。 到目前为止,我已经: 我真的不确定

  • 您好,我有以下内容,基本上它打印三角形数字,我想做的是设置n=用户键盘输入,基本上用户输入一个迭代,它打印出输入的迭代次数的三角形序列。 如果我想在n=无时无限循环,那么这大概就是n=“”。。。但我不知道怎么做 任何帮助都将不胜感激。 这是Python编码 使用Seons解决方案时出错 错误!请输入数字或留空。回溯(最近一次调用):文件"",第15行,get_valid_user_inputVal

  • 我正在从一个txt文件中读取一个等级列表到一个数组中。它在读取用户输入时运行良好,但在扫描文件时,我无法读取每一行。学生人数是可变的。每个学生的分数是可变的。我在阅读学生人数和作业数量方面没有问题,但在阅读文件时,我很难从每一行中提取每个学生的整数(分数)。输入可以是a或b(或更多的学生/作业): txt-example1(包括//和//之后的注释是我自己的,不在txt文件中) TXT-例子 我可

  • 我做了一个程序,要求我输入一个名字,这个名字应该在一个名为的数组中。看起来是这样的: 我在这里做错了什么?