WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   C: Problem bei Notendurchschnittsberechnung (http://www.wcm.at/forum/showthread.php?t=74906)

pirate man 27.10.2002 11:43

C: Problem bei Notendurchschnittsberechnung
 
wir sollen über die ferien in c ein programm schreiben, das den notendurchschnitt von beliebig vielen noten ausrechnet
so soll es ausschaun:
benutzer gibt note ein - sollte die eingabe nicht im bereich 1-5 sein, kommt eine fehlermeldung und die aufforderung zu einer erneuten eingabe
wenn er dann e drückt, wird der notendurchschnitt ausgerechnet - will er eine weitere note eingeben, soll er eine beliebige andere taste drücken
jetzt hab ich folgendes problem:
egal welche zahl ich eingebe, es kommt immer die fehlermeldung, dass die zahl falsch is
ich hab das file angehängt und hoffe, dass ihr mir helfen könnt

pong 27.10.2002 11:49

das scanf pfuscht dir leider rein, da es bei der eingabe cr und lf auch mitnimmt und ein wert jenseits von gut und böse ins int geschrieben wird

abhilfe wäre ein array aus mind. 3 zeichen und das 1te weisst du dann deinem int zu (musst noch schaun obs ne typenkonversion besteht und im bedarfsfall 0x30h abziehen)

pong

pirate man 27.10.2002 12:09

wie schaut aus mit getchar()? geht das? oder nur bei buchstaben?

future 27.10.2002 12:14

if(note<'1' || note>'5')


Wenn du integer mit char vergleichst, wirst du nie zu einem sinnvollen ergebnis kommen ;)


besser

if(note<1 || note>5)

future 27.10.2002 12:17

if(note<'1' || note>'5')

behandelt der compiler wie

if(note<49 || note>53)


das entspricht nicht dem österreichischen Schulnotensystem :D

pirate man 27.10.2002 12:27

ups :)
jetzt gehts, da wär aber noch ein problem
wenn man e drückt, um den durchschnitt anzeigen zu lassen, wird das programm geschlossen :(

future 27.10.2002 12:37

Zitat:

Original geschrieben von pirate man
ups :)
jetzt gehts, da wär aber noch ein problem
wenn man e drückt, um den durchschnitt anzeigen zu lassen, wird das programm geschlossen :(



was hast überhaupt geändert wars das was ich gepostet habe :confused:

printf("%d",durchschnitt);

durchschnitt ist aber eine float! %d aber nur für integer. vielleicht mag er das nicht?

pirate man 27.10.2002 12:53

ich hab die apostrophe in der if-abfrage weggegeben
was steht für float?

future 27.10.2002 13:01

Zitat:

Original geschrieben von pirate man
ich hab die apostrophe in der if-abfrage weggegeben
was steht für float?


sorry, aber ich habe C schon 10 Jahre nicht mehr angerührt ;)


probiers mal mit "%4.2f"

pirate man 27.10.2002 13:03

hab %f statt %d geschrieben, geht auch nicht
es kommen übrigens 2 warnings beim kompilieren
und zwar bei gesamt=gesamt+note und bei i++
die warnings lauten: possbile use of variable (gesamt bzw. i) before definition


Alle Zeitangaben in WEZ +2. Es ist jetzt 04:03 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag