Thema: [C++] Notenrechner fehler
-
05.06.2012, 09:04 #1Neuling
- Registriert seit
- 01.12.2011
- Beiträge
- 6
Thanked 0 Times in 0 Posts
[C++] Notenrechner fehler
Ich bräuchte hier Hilfe, weil oben steht das ich für "Notenanzahl" nen Konstantenausdruck benötige aber ich will keine Konstante als Anzahl. Hoffe jemand kann mir weiterhelfen !Code:#include <iostream> #include <conio> using namespace std; void main () { cout << "Notenrechner" << endl << endl; int Notenanzahl; float Note[Notenanzahl]; float Notensumme; do { cout << "Note: "; cin >> Note; Notensumme = Notensumme + Note; Notenanzahl++; }while (Notenanzahl < 5); float Durchschnitt = Notensumme / Notenanzahl; cout << "Ihr Durchschnitt: " << Durchschnitt; getch(); }
-
05.06.2012, 11:39 #2U-Labs Legende
- Registriert seit
- 26.10.2011
- Beiträge
- 1.196
- Blog Entries
- 2
Thanked 1.598 Times in 726 Posts
AW: Notenrechner fehler
Hi Alex,
ein Array/Feld mit dynamischer Größe kannst du nur mithilfe von Pointern erzeugen.
Galileo Computing :: C von A bis Z – 12.7 Array und Zeiger
Das würde bei deinem Code anfangs in etwa so aussehen:
Code:int Notenanzahl = 0; int *pNotenanzahl = &Notenanzahl; float * Note = new float[*pNotenanzahl]; float Notensumme;
-
07.06.2012, 16:12 #3Projektleitung
- Registriert seit
- 15.11.2011
- Beiträge
- 8.443
- Blog Entries
- 5
Thanked 9.515 Times in 3.330 Posts
AW: Notenrechner fehler
Macht so schonmal keinen Sinn, du definerst einen Array in der größe einer nicht initialisierten Variable.Code:int Notenanzahl; float Note[Notenanzahl];
In Notenanzahl steht uninitialisiert nachher irgendein Crap drin z.B. 89237492893 und dein Programm reserviert massig Speicher, den kein Mensch braucht.
Ich würde Variablen, denen später im Programm kein Wert zugewiesen wird, grundsätzlich immer initialisieren.
Das is z.B. ne Variable die du nicht initialisiert hast. Der wird aber später kein Wert zugewiesen, da du nur draufaddierst. Hier also dasselbe wie oben: Da steht irgendein Mist drin, du addierst drauf und erhälst nachher Werte jenseits der Realität.Code:float Notensumme;
Ausserdem kannst du nicht direkt auf einen Array zugreifen, sondern nur auf ein Arrayelement.
Geht also schonmal nicht, da kein Index angegeben ist, in dem das Element gespeichert werden soll.Code:cin >> Note;
Die einfachste Lösung ohne sich mehr oder weniger selbst dynamische Arrays (z.B. mit dynamischen Strukturen) zusammenzubasteln ist das verwenden einer Konstante für die Anzahl. Zusätzlich dann noch einen Integer der hochgezählt wird über den du bei der Eingabe auf den Index des Arrays zugreifen kannst:
Code:void main () { cout << "Notenrechner" << endl << endl; int Notenanzahl = 10; float Note[Notenanzahl]; float Notensumme = 0; int count = 0; do { cout << "Note: "; cin >> Note[sum]; Notensumme = Notensumme + Note; count++; }while (count < Notenanzahl); float Durchschnitt = Notensumme / count; cout << "Ihr Durchschnitt: " << Durchschnitt; getch(); }
Ähnliche Themen
-
[CS:GO] Fehler
Von Gangstersheep im Forum Counter StrikeAntworten: 0Letzter Beitrag: 03.11.2012, 22:24 -
SSL-FEHLER
Von Kingbubi2 im Forum SoftwareAntworten: 2Letzter Beitrag: 26.06.2012, 21:31 -
Fehler
Von helfen im Forum Fragen & ProblemeAntworten: 6Letzter Beitrag: 06.03.2012, 18:13 -
[C++] Probleme bei einem Notenrechner
Von AlexEHM im Forum C++Antworten: 3Letzter Beitrag: 17.01.2012, 19:09
Diese Seite nutzt Cookies, um das Nutzererlebnis zu verbessern. Klicken Sie hier, um das Cookie-Tracking zu deaktivieren.
Zitieren