2016-07-02 14 views
-1

こんにちは!私のコードは短くすることはできません申し訳ありません、すべての行は 出力のために問題があります。これはバソートコードです。 QUELLはファイルの読み取りです。ファイルには3390行の番号があります。 /// Hereerが問題です: ソートされた配列をオプトアウトすると、最初の行は常に変わらないように、同じままになります。 これをどうすれば解決できますか?Bubblesortの間は配列[0]は変更されません

int sorta[3390]; 
    for(int i=0; i < 3390; ++i){ 
     fgets(string, MAXZEILE, QUELL); 
     sscanf(string, "%d", &a); 
     sorta[i]=a; 
    } 
    for(int y=0; y < 3390; ++y){ 
    for(int x=3388; x>y; --x){ 
     if (sorta[x] >= sorta[x+1]){ 
     int tmp = sorta[x]; 
     sorta[x] = sorta[x+1]; 
     sorta[x+1] = tmp; 

答えて

0

x>y限り内部ループ反復。これは、xをyに等しくする最後の反復を欠いてしまいます。長い話を短くするには、>>=に置き換えます。あなたはOKであるはずです。

for(int y=0; y < 3390; ++y) { 
    for(int x=3388; x >= y; --x) { 
    // Here -----------^ 
関連する問題