2012-01-07 146 views
-1

我需要一點分配我需要什麼,我做錯了

static int Max(int[] p) 
    { 
     int max = p[0]; 
     for (int i = 1; i < p.GetLength(0); i++) 
     { 
      if (p[i] > max) max = p[i]; 
     } 
     return max; 
    } 
    static void Main(string[] args) 
    { 
     int[] p = new int[10]; 
     for (int i = 0; i < p.GetLength(0); i++) 
     { 
      Console.Write("Vpiši {0}. celo število: ", i); 
      p[i] = int.Parse(Console.ReadLine()); 
     } 
     int max = Max(); 
     Console.WriteLine(max); 
     Console.ReadKey(true); 
    } 

幫助,我不知道原因,但我有書面方式進行的最大方法最大陣列problam建議。我認爲我不是正確地調用方法 - 我可以請求幫助或問題

+1

你的MAX()方法接受一個論據。 int max = Max(p);修理。 – 2012-01-07 16:44:54

+0

'Max()'方法將跳過數組中的第一項。只是說... – Nuffin 2012-01-07 16:50:40

+0

@Tobias:不,它不會。查看「Max」的第一行。 – 2012-01-07 16:52:26

回答

3

您沒有正確調用Max方法(我認爲這個代碼甚至不會編譯)。確保通過該方法的陣列(p):

int max = Max(p); 
+0

感謝Andrew的幫助。 – 2012-01-07 18:12:48

+0

@KristyMaitz:沒問題,如果有幫助,請「接受」答案! – 2012-01-07 18:13:05

0

把它們放在一個類裏面,然後通過數p作爲參數

例如

public class checkmax 
    { 

     static int Max(int[] p) 
     { 
      int max = p[0]; 
      for (int i = 1; i < p.GetLength(0); i++) 
      { 
       if (p[i] > max) max = p[i]; 
      } 
      return max; 
     } 


     static void Main(string[] args) 
     { 
      int[] p = new int[10]; 
      for (int i = 0; i < p.GetLength(0); i++) 
      { 
       Console.Write("Vpiši {0}. celo število: ", i); 
       p[i] = int.Parse(Console.ReadLine()); 
      } 
      int max = Max(p); 
      Console.WriteLine(max); 
      Console.ReadKey(true); 
     } 
    } 
}