0

私はJavaプログラミングが初めてで、助けてください。

これは私の質問です: ランダムな実数を入力し、それらを行列 (たとえば [100][100] の配列) に記録したいのですが、入力した数値を使用して、そのような数値が前に連続して入力されているかどうかを調べたいと考えています。つまり、それらと次のものを画面に出力します。数字が前に連続して入力された場合のみ。

ここに私のコードがありますが、おそらく正しくありません

import java.util.Scanner;

class AddAMatrix {
    public static void main(String args[]) {
        int m, n, c, i;
        Scanner in = new Scanner(System.in);
        //input the size of the matrix
        System.out.println("Enter the number of rows and columns of matrix");
        m = in.nextInt();
        n  = in.nextInt();

        int array[][] = new int[m][n];

        System.out.println("Enter number");
        //we input random numbers and want to record them in the matrix, with that numbers we input we want to fing if there are 
        //such a numbers entered before successively and if that is so , we output them and the next one at the sceen . only if the 
        //numbers are successively entered before.
        for (c = in.nextin(); c < m; c++)
            if (array[c][].equals(c))
                System.out.println("number is repeated" + c);
            else System.out.println("enter another number");
        for (d = in.nextin(); d < n ;d++ )
            array[c][d] = in.nextInt();
        if (array[c][].equals(c))
            System.out.println("number is repeated" + c);
        else System.out.println("enter another number");

        if (array[c][d].equals(c, d));
        System.out.println("next number of entered matrix is" + array[c][d]);                  
    }
}

どうもありがとう 。これは機能していますが、2回入力された最後の数字が表示されました。私の仕事は、たとえば 300 または 400 の数字のようにたくさんの数字を入力し、たとえば 23 のように 1 つを入力するよりも、その数字を取り、ホール行列を一周して均等に見つけ、それを出力するより (23) と前の数字を出力することです。それは順番に入力され、マトリックスの次の 1 つだけです。例: 2,5,7,9,23,32,13,15,19,39,36,........3,4, 9,23 出力 9,23,32 これはここでキャッチ。私が働かなければならない方向を教えてくれることを願っています。前もって感謝します 。!!!

4

1 に答える 1

0

このコードを試してください:

public static void main(String[] args) {
    int m, n, c;
    Scanner in= new Scanner(System.in);
    //input the size of the matrix
    System.out.println("Enter the number of rows and columns of matrix");
    m= in.nextInt();
    n= in.nextInt();

    int array[][]= new int[m][n];

    for (c= 0; c < m; c++) {
        for (int d= 0; d < n; d++) {
            array[c][d]= in.nextInt();
        }
    }

            System.out.println("Enter a number to search for:");
            int queryNum= in.nextInt();

            //search for it
    for (c= 0; c < m; c++) {
        for (int d= 0; d < n; d++) {
            if (array[c][d] == queryNum) {
                if (d == 0) {
                    if (c - 1 >= 0) {
                        System.out.println(array[c-1][n-1]);
                    }
                } else {
                    System.out.println(array[c][d+1]);
                }
                System.out.println(array[c][d]);
                if (d + 1 >= n) {
                    if (c+1 < n) {
                        System.out.println(array[c+1][0]);
                    }
                } else {
                    System.out.println(array[c][d+1]);
                }
            }
        }
    }


    in.close();
}

コメントのカップル:

  • for ループでは、インデックス 0 から配列の長さまで反復します。
    • for (c= 0; c < m; c++) {for (int d= 0; d < n; d++) {
  • Scanner in最後の行で行ったように、使用しているストリーム ( ) を常に閉じる必要があります。
于 2013-06-21T14:49:52.280 に答える