Bedingte Verzweigungen
-
Irgendwie komme ich nicht weiter...
Das Programm sol solange Noteneingaben vom Benutzer erwarten, bis der BEnutzer die Zahl 0 eingibt. Anschließend soll das Programm die Durchschnittsnote ausgebenIch weiß nicht, wie ich das richtig rechnen bzw. dann auch ausgeben kann..
VIelen Dank...int main () { double zahl=1; double durchschnittsnote; char eingabe; do { cout << "Geben Sie bitte eine Zahl ein: "; cin >> zahl; cout << "Moechten Sie noch eine Zahl eingeben (j/n)?"; cin >> eingabe; } while (eingabe == 'j'); for (int i=1;i>zahl;i++); int ergebnis = i+zahl; durchschnittsnote = ergebnis/zahl; cout << "Die Durchschnittsnote ist: " << durchschnittsnote << endl; return 0; }
-
meinst du jezt die durchschnittsnote von mehreren noten? oder wie meinst du es
-
hehehe ^^ ja okay nicht richtig gelesen,
bei mir gehts. kannst dein problem nochmal beschreiben ^^?
-
schrieb:hehehe ^^ ja okay nicht richtig gelesen,
bei mir gehts. kannst dein problem nochmal beschreiben ^^?
gut gut, ich sehe dein problem. habs ma mit 50 ausprobiert und hab ne 1.05
hum kanns sein ... du gibts die zahl immer neu ein oder?
dann machst du eine andere zahl so groß wie zahl ( z.b. zahl = 50 und i = 50 )
dann addierst du beides und teilst durch die zahl ( 50+50):50 = 2)bin noch net so gut im c++ aber so wie ichs sehe müsste man entweder das programm "endloss" mögliche variabeln erstellen lassen oder einfach nach jeder zahl rechnen
*endloss = so viele variabelen wie zahlen eingegeben werden
-
dein programm is falsch.
-
Tipp schrieb:
dein programm is falsch.
sonst wäre er net hier
PROBLEM GELÖST ^^
#include <iostream> using namespace std; int main () { double zahl=1; double durchschnittsnote; double temp=0; double temp2=0; char eingabe; int x=0; do { cout << "Geben Sie bitte eine Zahl ein: "; cin >> zahl; if ( zahl > 6)x=1; cout << "Moechten Sie noch eine Zahl eingeben (j/n)?"; cin >> eingabe; temp +=zahl; ++temp2; }while (eingabe == 'j'); durchschnittsnote = temp/temp2; cout << "Die Durchschnittsnote ist: " << durchschnittsnote << endl; if (x == 1)cout << "Tolles Land wo du Lebst ;)!"<<endl; return 0; }
erklärung :zuerst lasse ich das opfer eine zahl eingeben und addiere diese zu temp, dann setze ich temp2 +1.
wenn das "opfer" dann alle seine zahlen eingegeben hat lasse ich das programm die note ausrechnen ( alle noten addiert ( temp ) geteilt durch die anzahl der noten ( temp2 ) fertig
-
od ein kleines bisschen einfacher vielleicht:
int main(int argc, char* argv[]) { int notenanzahl=0; float summe=0; int note = 0; float durchschnitt=0; do { cout<<"Note eingeben:";cin>>note; summe=summe+note; notenanzahl++; }while(note!=0); notenanzahl--; //weil er hier die 0 als note sonst mit zählen würde durchschnitt=summe/notenanzahl; cout<<"Durchschnitt:"<<durchschnitt<<endl; getch(); return 0; }@ Visual Newbie: schau dir aber die grundlagen nochmal an, denn deine for-schleife, und auch die berechnungen sind wirklich falsch!
-
ser1al schrieb:
od ein kleines bisschen einfacher vielleicht:
int main(int argc, char* argv[]) { int notenanzahl=0; float summe=0; int note = 0; float durchschnitt=0; do { cout<<"Note eingeben:";cin>>note; summe=summe+note; notenanzahl++; }while(note!=0); notenanzahl--; //weil er hier die 0 als note sonst mit zählen würde durchschnitt=summe/notenanzahl; cout<<"Durchschnitt:"<<durchschnitt<<endl; getch(); return 0; }@ Visual Newbie: schau dir aber die grundlagen nochmal an, denn deine for-schleife, und auch die berechnungen sind wirklich falsch!
einfacher vieleicht aber nicht unbedingt besser :| ich würd erstmal kein float sonder double nehmen und statt int bei der note auch double ( könnt ja mal 2.25 etc. sein )
und was is bitte getch();?
und wieso muss main variablen übernehmen Oo? sehr sehr verwirrend dein teilund zum float nochmal, keine note geht über 6 hinaus also auch platzverschwendung ( byte verschwendung )
-
[quote="0_0"]
ser1al schrieb:
und was is bitte getch();?
Konsolen-FAQ, erster Thread

und wieso muss main variablen übernehmen Oo? sehr sehr verwirrend dein teil
Muß nicht, aber kann (in die Parameter werden Argumente eingetragen, die von der Kommandozeile kamen).
-
0_0 schrieb:
einfacher vieleicht aber nicht unbedingt besser :| ich würd erstmal kein float sonder double nehmen und statt int bei der note auch double ( könnt ja mal 2.25 etc. sein )
also tut mir leid, aber bei mir kann es keine note 2,25 geben, weiß nich auf welcher schule du warst!
bei note gehe ich vom notensystem aus(1-6) und nicht vom punktsystem (slebst da ist 2,25 eher unwahrscheinlich)0_0 schrieb:
und was is bitte getch();?
damit sich das fenster nicht schließt? Ich weiß das sollte man so nicht machen, aber ich hatte keine lust mehr zu schreiben, und für dieses beispiel ist es eh egal
0_0 schrieb:
und wieso muss main variablen übernehmen Oo? sehr sehr verwirrend dein teil
wieso? es ist doch mir überlassen ob ich noch parameter über die kommandozeile eingebe?
Und btw hab ich meine IDE so eingestellt, das das automatisch immer mit erzuegt wird (da ich oft diese parameter brauche)0_0 schrieb:
und zum float nochmal, keine note geht über 6 hinaus also auch platzverschwendung ( byte verschwendung )
so und dazu sag ich jetzt nix....erst soll ich bei note statt int double nehmen, und nun sagst mir das das platzverschwendung wäre?
Auch wenn der durchschnitt nicht größer wie 6 wird, kann er aber 3,5 oder so sein, wird mit int,short etc schlecht!Möglicherweise habe ich dich aber auch falsch verstanden, dann tuts mir leid!