Der Unterschied zwischen den n++ und ++n am Ende einer while-Schleife? (ANSI-C)

dies ist wahrscheinlich eine dumme Frage, aber ich nur kann ' T es herausfinden. Es hat zu tun mit den unterschieden zwischen den n++ und ++n (die ich dachte, ich Verstand aber offenbar nicht).

#include <stdio.h>
#include <math.h>

long algorithmA(int n);
long algorithmB(int n);

int main(){
    long A, B;
    A = B = 0;
    int n = 1;
    while(A >= B){
        A = algorithmA(n);
        B = algorithmB(n);
        n++;
    }
    printf("At n = %d, Algorithm A performs in %ld seconds & "
           "Algorithm B performs in %ld seconds.", n, A, B);

}

long algorithmA(int n){
    return pow(n,4) * 86400 * 4;
}

long algorithmB(int n){
    return pow(3,n);
}

Hier können Sie wahrscheinlich sagen, ich bin versucht, um zu sehen, an welchem Punkt Algorithmus als Algorithmus B. Die Funktionen und Einheiten von Zeit, wurden mir in einem Hausaufgaben problem.

Anyways, ich dachte immer, dass die Bestellung von "++" würde keine Rolle, am Ende einer while-Schleife. Aber, wenn ich ++n anstelle von n++, bekomme ich die falsche Antwort. Kann jemand erklären, warum?

Edit: Gut es WAR, zeigt 24 mit ++n und 25 n++, aber es muss einen anderen Grund. Weil ich gerade überprüft jetzt, und es ist kein Unterschied. Vielen Dank für Ihre Geduld und Zeit, Jungs, ich wünschte nur, ich wusste, was ich Tat!

  • Nicht sicher, ob eine direkte duplizieren (andere Sprache), aber ich Wette, das problem ist das gleiche. gibt es einen Unterschied zwischen x++ und ++x.
  • Ich denke, Sie haben diesen nach hinten.
  • lol.. nur es gelöscht.. 🙂 mis eingeben..
  • Wenn die operation allein steht, und deren "Ergebnis" wird nicht verwendet, gibt es keinen Unterschied. Nur wenn das Ergebnis verwendet wird (wie in myArray[n++]) macht es einen Unterschied, und dieser Unterschied ist, ob Sie effektiv fetch array-element vor der Inkrementierung oder nach.
  • Es sollte keinerlei Unterschied zwischen diesen, da die Schrittweite nicht in einem Ausdruck verwendet. Haben Sie eine Ausgabe, die zeigt sonst?
  • (Es sollte nicht machen einen Unterschied in den obigen code.)
  • Hmm wirklich seltsam, es muss schon was anderes. Ich checkte wieder und es gab keinen Unterschied. Danke Jungs.

InformationsquelleAutor Steady | 2014-09-06
Schreibe einen Kommentar