2016-04-21 57 views
0
public void BubbleSortArray(int[] numbers) 
{ 
    bool swap; 
    int temp; 

    do 
    { 
     swap = false; 

     for(int index = 0; index < (numbers.Length - 1); index++) 
     { 
      if(numbers[index] > numbers[index+1]) //if first number is greater then second then swap 
      { 
       //swap 

       temp = numbers[index]; 
       numbers[index] = numbers[index + 1]; 
       numbers[index + 1] = temp; 
       swap = true; 
      } 
     } 

    } while (swap == true); 
} 

好了,所以我已經得到了我的冒泡排序與詮釋數字的工作,但我怎麼得到這個代碼與小數的工作,任何幫助,將不勝感激使用bubblesort排序小數數組時遇到問題。 C#

+1

通過將您的'int []'改爲'decimal []'參數並將您的'int temp'改爲'decimal temp'? – Ian

回答

0

你不應該只需要改變你的int[]輸入到decimal[]輸入?

public void BubbleSortArray(decimal[] numbers) //change here 
{ 
    bool swap; 
    decimal temp; //change this too 

    do 
    { 
     swap = false; 

     for(int index = 0; index < (numbers.Length - 1); index++) 
     { 
      if(numbers[index] > numbers[index+1]) //if first number is greater then second then swap 
      { 
       //swap 

       temp = numbers[index]; 
       numbers[index] = numbers[index + 1]; 
       numbers[index + 1] = temp; 
       swap = true; 
      } 
     } 

    } while (swap == true); 
} 

此外,C#支持方法重載。因此,兩種方法(使用int[]參數的方法和使用decimal[]參數的方法)都可以並排居住。

public void BubbleSortArray(int[] numbers){ 
    .... 
} 

public void BubbleSortArray(decimal[] numbers){ 
    .... 
} 
+0

這就是我所說的 'code int [] numbers = new int [1022]; 十進制[]數字2 =新的小數[1022]; Assignment2 obj = new Assignment2(); ' 'code obj.BubbleSortArrayDecimal(numbers2); Console.Write(「Sorted:」); obj.DisplayArray(numbers2); Console.Read();' 它出來說錯誤不能從十進制轉換爲int – AStrugglinStudent

+0

@AStrugglinStudent可能是因爲你對C#很陌生? – Ian

+0

@AStrugglinStudent你的意思是你想打印排序的數組? – Ian