2012-03-26 20 views
-1

http://ideone.com/GKxcj das ist mein Code. Ich habe eine Frage über die Ausgabe, also, wenn ich versuchte, Ausgabe in Datei auszudrucken, zeigen Sie mir diese Ausgabe: wie Sie aus dieser Ausgabe sehen können, dass die gesamte Spalte für jede Zeile wiederholt wurde, warum dies geschieht die Calcdata-Funktion scheint gut mir. Wenn etwas in der caldata-Funktion nicht stimmt, kann mir jemand erklären, was falsch mit mir war? dankeAusgabe für jede Zeile wiederholt

+0

Es könnte nützlich sein, dies einige 'printf durch zu debuggen Hinzufügen()' Anweisungen, wenn der 'total' Wert berechnet wird - ebenso wie eine Überprüfung, ob zu sehen die Kuriosität ist auf die Ausgabe oder die Berechnung zurückzuführen. – sarnold

+0

ich kann das nicht tun, weil es scheinbar undefiniertes Verhalten irgendwo zu haben scheint, das nicht auf den Bildschirm ausgibt, auch wenn ich printf benutze, auch könnte ich die Ausgabedatei auf meinem System laufen lassen> Ich habe die Ausgabe von jemand anderem System, wenn sie führe es auf ihrem System aus. – KhoaVo

Antwort

0

Ich gehe durch Ihren Code und eine Sache scheint seltsam zu sein. Wenn ich klar verstehe, entspricht jeder Tisch einem Skater.

Für jede Zeile haben Sie eine Basis, eine Punktzahl und eine Gesamtpunktzahl. In Ihrer Druckfunktion können wir deutlich sehen, dass:

Skater [i] .baseval [j] die Basis val für Skater drucken i und Reihe j

Dann wird die Score-Liste mit Skatern angezeigt wird [i]. score [j] [k] wobei k der Score-Index im Array ist.

Wenn Sie jedoch die Gesamtpunktzahl drucken, wird Skater [i] .total_score angezeigt, was ein eindeutiger Wert ist. Es ist also normal, dass es für jede Reihe der Tabelle für einen Skater gleich ist.

Wenn Sie eine Gesamtpunktzahl für jede Zeile wollen, müssen Sie nur Skater verwandeln [i] .total_score auf ein Array dann die Gesamtpunktzahl berechnen und an die righ Zeile hinzufügen (wie Sie für die Basisbewertung tat)

Edit: geändert falsche Variablennamen

Grüße

+0

Nun, ich habe tech_score nicht als Gesamtpunktzahl angezeigt. Ich berechnete den Technologie-Score getrennt von der Gesamtpunktzahl. – KhoaVo

+0

Sorry, ich meinte total_score: fprintf (fpOut, "% 5.2f", Skater [i] .total_score); Sie sehen, dass Sie nur eine Gesamtpunktzahl für den Skater haben, also ist es natürlich, dass es für jede Reihe gleich ist – grifos

+0

gut kann total_score sollte ein Array sein, weil es jetzt nur noch 1 total_score für jeden Skater – KhoaVo