2014-01-27 32 views
0

我確信我已經完成了這項工作,我意識到了其他主題,但是因爲我覺得我做對了,所以我不確定要尋找什麼錯誤。我的漁夫yates shuffle無法正常工作

我想要做的是將x數組的數組1分配給x然後洗牌,現在我只是硬編碼x爲8,直到我獲得基礎知識爲止,我是新手談到C#,所以我似乎有一些最基本的概念掙扎。

我一直在玩,現在我開發了這個問題

ArrayAssignment.Program.Shuffle<sort>(int[])」必須聲明主體,因爲它不標記爲抽象,EXTERN或部分 線:18 柱:28

任何幫助將不勝感激

class NumberShuffle 
    { 
    int i; 
    int j; 
    //array 
    int[] sort = new int[8];     

    static Random _random = new Random(); 

    public static void Shuffle<int>(int[] sort); 


    public void RunProgram() 
    { 


     for (int i = 0; i < 8; i++) 
     { 
      sort[i] = i + 1; 
     } 
     var random = _random; 
     for (int i = sort.Length; i > 1; i--) 
     { 
      int j = random.Next(i); 
      int tmp = sort[j]; 
      sort[j] = sort[i - 1]; 
      sort[i - 1] = tmp; 

     } 


     for (int i = 0; i < 8; i++) 
     { 
      Console.WriteLine(sort[i]); 
     } 

     } 


      static void Main(string[] args) 
     { 
     NumberShuffle myNumberShuffle = new NumberShuffle(); 
     myNumberShuffle.RunProgram(); 

     Console.WriteLine("\n\n==============================="); 
     Console.WriteLine("NumberShuffle: Press any key to finish"); 
     Console.ReadKey(); 

     } 
     } 
+1

究竟是什麼問題? –

+0

難道你不能評論這個? 'public static void Shuffle (int [] sort);'因爲當我嘗試運行你的代碼時,沒有它就可以正常工作。 – bluejaded

+0

iv花了2小時的更好的一部分,試圖讓這個工作...謝謝你 –

回答

2

刪除該字符串public static void Shuffle<int>(int[] sort);

+0

這是我所做的,它的工作原理 –

2

好視編譯告訴你(...洗牌(INT [])必須,因爲它不是ABST標記聲明主體RACT,EXTERN或部分...),你應該實現方法體:

// Incorrect: the method requires body 
// public static void Shuffle<int>(int[] sort); 

public static void Shuffle<int>(int[] sort) { 
    // Put necessary code here 
} 

或者,如果你其實並不需要Shuffle方法,你可以安全地刪除