2016-04-15 14 views
-2

Ich erwarte den folgenden Code, um die Zahlen in aufsteigender Reihenfolge oder absteigend zu drucken, aber wenn ich gebe cout Anweisung alles, was ich bekomme, ist das gleiche Array zurück. Ich bin nicht in der Lage zu machen, wo ich Fehler mache (und ich diese Methode verwenden, weil dieses Programm für die Schule benötigt wird, und ich mag nicht jede Funktion für mich zu tun)über Arrays und einen logischen Fehler

#include<iostream> 
#include<algorithm> //<utility> for C++11 
using namespace std; 
int main() 
{ 
    int array[5] = { 1,4,6,9,5 }; 
    for (int i = 0; i<5; i++) 
    { 
     for (int j = 0; j<5; j++) 
     { 
      if (array[i]<array[j]) 
      { 
       swap(array[i], array[j]); 
      } 
     } 
    } 
    for (int k = 0; k<5; k++) 
     cout << array[k] << " "; 
    return 0; 
} 
+1

richtige Initialisierung Sie: 'int i = 0; '. –

+1

Ich denke, es ist wichtig, dass wir die Funktion swap() sehen. – FCo

+0

@ πάνταῥεῖ Entschuldigung, das war ein Tippfehler – ramsay

Antwort

1

Ich denke, das 4. Zeile sein sollte:

for (int j = i + 1; j < 5; j++) 

auch die Swap-Funktion müssen anhand passieren:

void swap(int &a, int &b) 
{ 
    int temp = a; 
    a = b; 
    b = a; 
} 
+1

FYI, sie verwenden 'std :: swap'. –

Verwandte Themen