Ausgabe verändern



  • Hallo,
    ich bin sehr neu, und verstehe nur wenig von C++.
    Ich habe eine kleine Frage zu einer Ausgabe.
    ICh habe in einem Programm folgendes:

    printf("ES(n+1): %d\n",ppmatrix[0][projProps->numberOfNodes+1]);
    
    		output = fopen(strFilename,"a");
    		fprintf(output, "Instanz %ld \t ES(n+1): %d\n", probnr,ppmatrix[0][projProps->numberOfNodes+1]);
    		fclose(output);
    

    Zuvor existiert ein Algorithmus, der diese Stelle n+1 berechnet, die Anfangswerte sind aus einer Tabelle in Matrixform.
    Es ist doch sicherlich auch möglich alle Stellen von 1 bis n+1 auszugeben und nicht nur die Stelle n+1. Wie funktioniert dieses?
    Ich kenne aus JAva, dass dann die Ergebnisse in ein Array geschrieben werden, welche ich später sortiere, jedoch die Position weiterhin wichtig ist.
    Kann mir bitte jemand helfen?



  • So wie in Java auch: mittels einer Schleife -)

    for(int i=0; i<projProps->numberOfNodes+1; i++)
      ppmatrix[0][i];
    


  • kann ich dieses Array dann so sortieren, nach den Einträgen von klein nach groß, dass jedoch auch die Positionen gemerkt werden?

    Z.B
    (0, 3, 4, 0, 7, 2, 9)
    sortiert (0, 0, 2, 3, 4, 7, 9) mit den Positionen der Arrayeinträge (1., 4., 6., 2., 3., 7.)

    Wie ist dieses, wenn überhaupt möglich??



  • Ist dies denn wirklich nötig? Falls ja, kannst du bspw. ein

    struct ST
    {
        int val;
        unsigned int oldpos;
    }
    

    definieren.
    oldpos wird dann jeweils vor dem Sortieren gesetzt.
    Achja, die Array-Indizes beginnen bei 0!!!


Anmelden zum Antworten