Arrays < C/C++ < Programmiersprachen < Praxis < Informatik < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 14:03 So 05.09.2010 | Autor: | Ice-Man |
Hallo,
ich habe hier mal ein Programm geschrieben, wo Schulnoten eingegeben werden.
Jetzt wollt ich einfach mal die Summe einer Zeile berechnen.
Habe dazu auch einen Befehl (Habe ich leider unverständlicher Weise ;) "durch" genannt.)
Nur hat es bei meiner ersten Ausführung nicht so ganz funktioniert.
Habe es dann geändert, und dann lief es.
Ich poste jetzt mal beide Quelltexte, wäre dankbar, wenn mir jemand sagen würde, wo mein Fehler ist.
Dateianhänge: Anhang Nr. 1 (Typ: txt) [nicht öffentlich] Anhang Nr. 2 (Typ: txt) [nicht öffentlich]
|
|
|
|
Hallo!
Ich vermute, du willst eine Durchschnittsnote berechnen, dann mußt du die Noten ja erst aufaddieren, und sie dann später durch die Anzahl der Noten teilen.
In der zweiten Datei summierst du alle Noten des 0. Schülers auf.
In der ersten Datei tust du das auch, allerdings so oft, wie die Anzahl der Schüler ist, den das steht da noch in einer FOR-Schleife, die über alle Schüler geht.
Ich nehme an, du willst eh die Durchschnittsnoten jedes Schülers ausgeben, dann muß das natürlich so wie in der ersten Datei aussehen. Allerdings muß der erste Index des Arrays über die Schüler laufen, und nicht =0 sein. Und in der Schüler-For-Schleife solltest du am Anfang ein durch=0 einfügen.
|
|
|
|
|
Status: |
(Frage) beantwortet | Datum: | 14:21 So 05.09.2010 | Autor: | Ice-Man |
Ja, das mit dem Durchschnitt, das soll eventuell dann noch kommen.
Da muss ich dann natürlich noch dividieren ;).
Nur ich habe mir gedacht, wenn ich die Spalten addieren möchte, dann schreibe ich das in die "Spaltenschleife". Da funktioniert es ja auch.
Und wo ich dann die Zeilen addieren wollte, und ich dies in die "Zeilenschleife" geschrieben habe, da hat es nicht funktioniert.
Nur ich habe ja auch, das durch=0 ganz oben deklariert..
|
|
|
|
|
Hi!
nee, du verstehst nicht, was ich meine.
Im ersten Fall hast du da ein
durch=tabelle[0][n]+durch;
innerhalb zweier schleifen stehen. Die innere geht über alle Noten und die äußere über alle Schüler.
Die innere Schleife ist ja noch schön, allerdings wird diese 3x (weil 3 Schüler) durchlaufen. Der Wert, den du erhälst, ist daher die dreifache Notensumme des 0. Schülers.
Wenn du die Berechnung für alle Schüler machen willst, so muß das erstmal
durch=tabelle[ s][n]+durch;
lauten, um den Durchschnitt jedes Schülers zu berechnen.
Außerdem muß durch=0 sein, bevor du mit dem nächsten Schüler anfängst, und daher muß das gleich der erste befehl in der Schüler-Schleife sein. Es sei denn, du willst den gesamtdurchschnitt aller Noten aller Schüler berechnen, dann brauchst du das nicht.
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 16:07 So 05.09.2010 | Autor: | Ice-Man |
Ok, jetzt funktioniert es...
Habe nen bisschen probiert, aber jetzt geht es ;)
|
|
|
|
|
Status: |
(Frage) beantwortet | Datum: | 15:54 So 05.09.2010 | Autor: | Ice-Man |
Wenn ich jetzt die Zeilensummer berechnen möchte, und diese dann auch ausgeben will, wie muss ich das denn formulieren.
Ich mein, wenn ich nur eine Zeile berechnen will, dann bekomm ich das noch hin. Da gebe ich ja dann die Zeile an, und lass den "Rest" einfach durchlaufen.
So müsst ich das ja dann für jede Zeile machen.
Aber kann ich das auch irgendwie allgemein formulieren?
Also das nach jeder Zeile die entsprechende Summe berechnet wird?
Danke
|
|
|
|
|
Hallo!
Nun, genau das machst du ja, wenn du meinen letzten beitrag beherzigst.
Oder möchtest du alle Summen irgendwo speichern? Dann müßtest du dir ein weiteres Array schaffen, oder an das vorhandene eine weitere Spalte anfügen.
|
|
|
|