2012-10-29 63 views
0

林試圖執行冒泡排序與緊湊指針。排序似乎只排序的第2個,然後失敗嘗試使用由老師C++冒泡排序緊湊指針

float *Sort(float *first, size_t elements) 
{ 
    { 
     for (didSwap = 0, current = first, next = first + 1; current < last; ++current, ++next) 
     { 
       didSwap = 1; 
      } 
     } 
     --last; 
    } 
    while (didSwap); 

    return first; 
} 
+0

它看起來好像測試和排序採用不同的排序方向。也就是說,「緊湊型指針」和「前兩個」是什麼?大多數這個問題沒有意義。 –

+1

現在讓我猜,我認爲你的教授是一位C程序員,然後才知道他可以逃脫的最小可能的C++。我相信你的課程非常好,但請不要以爲你在這裏學習C++。 – john

+1

'while(didSwap);' - intentional? – Damon

回答

1

這是很簡單的提供DisplayValues驅動程序時,教授日常期待數組是降序排列。你的代碼看起來對我來說是正確的,但它按升序排列。

BTW你的教授有一個關於如何作品的誤解。它應該是

cout << setiosflags(ios_base::fixed); 

設置cout流的標誌。每個流都有自己的旗幟,你的教授似乎有一種印象,即有一套全球性的旗幟。 resetiosflags同樣的錯誤。

0

不應該有'做',使'做{...} while塊嗎?

float *Sort(float *first, size_t elements) 
{ 
    do 
    { 
     for (didSwap = 0, current = first, next = first + 1; current < last; ++current, ++next) 
     { 
      didSwap = 1; 
     } 

     --last; 
    } 
    while (didSwap); 
}