2013-10-05 74 views
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(); 
       } 
      } 


proceeding af在此之前,檢查是否所有輸入值都應該執行

+1

考慮改寫你的問題,因爲它是很難得到你的問題的概述。提供一些代碼並顯示你已經做了一些努力通常是一個好主意,這樣人們就不會碰到錯誤的方向 – xmoex

回答

1

將第一個輸入放入一個變量中。如果一個輸入不等於該變量,那麼您有一個有效的輸入。否則,你可以拒絕它。

考慮下面的輸入,如果一個數字被改變在任何時候,你將有一個有效的輸入是無效

11111 

。因此,使用以下所有內容檢查第一個輸入就足夠了。

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"); 
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(); 
    } 
相關問題