2013-04-08 56 views
1

試圖找出如何寫一個程序,它檢查陣列中的每個元素,以確定它是:測試多個數組元素

  1. 小於65

  2. 等於或大於65,但小於70

  3. 等於或大於70以上但低於80

  4. 等於或大於80以上,但小於90

  5. 等於或大於90

我也有以然後顯示有多少元素落入每個類別中,但可以肯定我可以計算的那部分我自己。

目前我想不出有什麼辦法可以單獨測試數組中的每個元素來進行測試,但看起來並不正確。

數組初始化是這樣的:

double grades[3][6]; 
grades[0][0] = 55.0; 
grades[0][1] = 65.0; 
grades[0][2] = 72.0; 
grades[0][3] = 77.0; 
grades[0][4] = 80.0; 
grades[0][5] = 90.0; 

grades[1][0] = 99.0; 
grades[1][1] = 65.0; 
grades[1][2] = 70.0; 
grades[1][3] = 71.0; 
grades[1][4] = 87.0; 
grades[1][5] = 81.0; 

grades[2][0] = 66.0; 
grades[2][1] = 53.0; 
grades[2][2] = 69.9; 
grades[2][3] = 89.9; 
grades[2][4] = 81.9; 
grades[2][5] = 103.5; 

回答

1

我不能一邊想沒有辦法做測試,從測試陣列單獨

呀的每一個元素,如果你發現你自己完成了1項任務,這完全一樣,一遍又一遍,可能性是你應該進行循環。

在這樣的多維數組是這樣做測試每個元件的最簡單的方法wtih嵌套for循環:

for(int i = 0; i < 3, i++) 
    for(int j = 0; j<6; j++) 
    { 
     if(grades[i][j] < 65) 
      // do lt 65 stuff 
     else if(grades[i][j] < 70) 
      // do 65-70 stuff 
     // ... 
     else 
      // do 90+ stuff 
    } 
+0

另外,爲了儘量減少進行比較,我會用一個'別的if'鏈。正如'if(grades [i] [j] <65);'else if(grades [i] [j] <70);'等等。一旦你通過了第一個if,你就已經知道了它是'> = 65',所以沒有必要再檢查一次。 – 2013-04-08 19:00:49

+0

@Mike謝謝你們,程序在循環中運行得非常好。 – Xerinos 2013-04-08 20:19:37