如何检查多个2d数组的所有值是否全部相同?

时间:2013-10-05 13:39:56

标签: java arrays

我的主要问题是程序在程序要求输入值的所有时间内都不允许用户只输入相同的数字。

例如,用户需要输入值9次,用户只需输入" 1"作为一个值9次,程序必须将此作为错误,这意味着应该有多种。

虽然,用户有时仍然可以输入相同的值,但不是所有时间。用户可以输入" 1" 2x,3x,4x等,但不是9x。

例如:

可以允许这些:

输入数字1:1
输入数字2:2
输入数字3:1
输入数字4:1
输入数字5:3
输入数字6:5
输入数字7:5
输入数字8:5
输入数字9:5

但是,不允许这样做: 输入数字1:1
输入数字2:1
输入数字3:1
输入数字4:1
输入数字5:1
输入数字6:1
输入数字7:1
输入数字8:1
输入数字9:1

            int [][]array=new int [aa][aa];

输入部分:

        for (row=0;row<aa;row++)
            {
                for (col=0;col<aa;col++)
                {
                    System.out.print("Enter [" + row + "][" + col + "] = ");
                    array[row][col]=input.nextInt();
                }
            }


在此之后继续检查是否应该执行所有输入的值都是相同的

3 个答案:

答案 0 :(得分:1)

将第一个输入放入变量中。如果一个输入不等于变量,则输入有效。否则你可以拒绝它。

考虑以下输入,无效

11111

如果一个数字在任何时候发生变化,您将获得有效输入。因此,使用以下所有内容检查第一个输入就足够了。

答案 1 :(得分:1)

    Scanner input = new Scanner(System.in);
    int arr[] = new int[9];
    arr[0] = input.nextInt();
    boolean error = true;
    for (int i=1; i<9 ; i++)
    {
        arr[i] = input.nextInt();
        if (arr[i]!=arr[0])
            error = false;
    }

    if (error)
        System.out.println("Invalid");
    else
        System.out.println("valid");

答案 2 :(得分:0)

   int [][] theNumberArray = { {1,4,3},{6,2,3} };//inputs that will not give an error
   //int [][] theNumberArray = { {4,4,4},{6,2,3} };//inputs that will give an error 
   int lastEnteredValue = 0;
   int count = 0;


   for ( int x = 0; x < theNumberArray.length; x++ )
   {
        for ( int k = 0; k < theNumberArray[x].length; k++ )
        {

            if (k > 0 && theNumberArray[x][k] == lastEnteredValue) 
            {
                lastEnteredValue = theNumberArray[x][k];
                count += 1;

                if (count == theNumberArray[x].length - 1)
                {
                    System.out.println(
                    "Error : due to consecutively " + 
                    "inputting the same value!");
                    System.exit(-1);
                }
            } 
            else {
                lastEnteredValue = theNumberArray[x][k];
            }
        }
   }

   for (int x = 0; x < theNumberArray.length; x++)
   {
        for (int k = 0; k < theNumberArray[x].length; k++)
        {
            System.out.print(theNumberArray[x][k] + " ");
        }
            System.out.println();
   }