0

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

例如,用户需要输入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();
                }
            }


在此之后,应检查所有输入的值是否都相同

4

3 回答 3

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");
于 2013-10-05T13:58:12.200 回答
1

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

考虑以下输入,这是无效的

11111

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

于 2013-10-05T13:49:41.983 回答
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();
   }
于 2013-10-05T18:39:05.320 回答