WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Programmierung

Programmierung Rat & Tat für Programmierer

Microsoft KARRIERECAMPUS

Antwort
 
Themen-Optionen Ansicht
Alt 27.10.2002, 11:43   #1
pirate man
Inventar
 
Registriert seit: 15.06.2000
Beiträge: 2.833


Standard 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
pirate man ist offline   Mit Zitat antworten
Alt 27.10.2002, 11:49   #2
pong
Inventar
 
Benutzerbild von pong
 
Registriert seit: 25.12.2000
Alter: 41
Beiträge: 9.063

Mein Computer

pong eine Nachricht über ICQ schicken
Standard

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
____________________________________
\"Ein Gewitter reinigt die Luft\", sagte der Mann, nachdem ein Blitz seine Frau erschlug

Nicht klicken!


Erstposteralarm/Beschwerde/Kummerkasten


Verplattet
pong ist offline   Mit Zitat antworten
Alt 27.10.2002, 12:09   #3
pirate man
Inventar
 
Registriert seit: 15.06.2000
Beiträge: 2.833


Standard

wie schaut aus mit getchar()? geht das? oder nur bei buchstaben?
pirate man ist offline   Mit Zitat antworten
Alt 27.10.2002, 12:14   #4
future
gesperrt
 
Registriert seit: 18.10.2002
Beiträge: 59


Standard

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 ist offline   Mit Zitat antworten
Alt 27.10.2002, 12:17   #5
future
gesperrt
 
Registriert seit: 18.10.2002
Beiträge: 59


Standard

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

behandelt der compiler wie

if(note<49 || note>53)


das entspricht nicht dem österreichischen Schulnotensystem
future ist offline   Mit Zitat antworten
Alt 27.10.2002, 12:27   #6
pirate man
Inventar
 
Registriert seit: 15.06.2000
Beiträge: 2.833


Standard

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
pirate man ist offline   Mit Zitat antworten
Alt 27.10.2002, 12:37   #7
future
gesperrt
 
Registriert seit: 18.10.2002
Beiträge: 59


Standard

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

printf("%d",durchschnitt);

durchschnitt ist aber eine float! %d aber nur für integer. vielleicht mag er das nicht?
future ist offline   Mit Zitat antworten
Alt 27.10.2002, 12:53   #8
pirate man
Inventar
 
Registriert seit: 15.06.2000
Beiträge: 2.833


Standard

ich hab die apostrophe in der if-abfrage weggegeben
was steht für float?
pirate man ist offline   Mit Zitat antworten
Alt 27.10.2002, 13:01   #9
future
gesperrt
 
Registriert seit: 18.10.2002
Beiträge: 59


Standard

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"
future ist offline   Mit Zitat antworten
Alt 27.10.2002, 13:03   #10
pirate man
Inventar
 
Registriert seit: 15.06.2000
Beiträge: 2.833


Standard

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
pirate man ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 09:22 Uhr.


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