Ich versuche, eine Reihe von Zeichen in C zu sortieren, aber es druckt die gleiche Array anstelle der sortiertenKann das Zeichenfeld mit Blasensortierung in C
char*P[5] = {"1c", "4h", "3g", "10g"};
total_items = 4; // number of elements in the array.
for(int q =1; q<total_items; q++)
{
for(int k=0; k<total_items-q; k++)
{
if((int)P[k]>=(int)P[k+1])
{
temp=P[k];
P[k]=P[k+1];
P[k+1]=temp;
}
}
}
Wenn ich drucken Sie das Array sortieren, Es ist das gleiche wie das Original. Ich habe das Debugging versucht, indem ich in den if-Anweisungen gedruckt habe. Es stellt sich heraus, dass es den Swap-Block des Codes nie eingibt. Gibt es etwas, das mir fehlt?
Die erwartete Ausgabe sollte 1c, 3g, 10g, 4h sein.
Verwenden 'strcmp' statt'> = '('> '). – BLUEPIXY
@BLUEPIXY: Hallo, könntest du das für mich bearbeiten? Ich habe versucht, mit strcmp und es druckt das gesamte Array in umgekehrter Reihenfolge, nicht sicher, wo ich hier falsch liege: \ –
Lesen [strcmp] (http://en.cppreference.com/w/c/string/byte/ strcmp) – BLUEPIXY