URL: https://www.overclockers.at/coding-stuff/brauche_hilfe_in_c_50522/page_1 - zur Vollversion wechseln!
ich bräucht wieder mal eure hilfe in c
unser 1. programm in der schule rechnet das idealgewicht abhängig vom geschlecht aus
mann gibt m oder w ein (fürs geschlecht) und die größe - ausgegeben wird dann das idealgewicht
für den fall, dass etwas anderes als m oder w eingegeben wird, soll sofort nach der eingabe des geschlechts eine meldung kommen, die auf den fehler aufmerksam macht
aber die meldung kommt erst nach eingabe der körpergröße 
hier is der code:
Code:#include <stdio.h> #include <conio.h> void main () { clrscr(); printf("Sind Sie (m)ännlich oder (w)eiblich?\n"); int kg,kgw; char ge; ge=getchar(); printf("\nGeben Sie bitte Ihre Körpergröße in Zentimeter ein:\n"); scanf("%d",&kg); switch(ge) { case 'm': kgw=(kg-100)*0.9; break; case 'w': kgw=(kg-100)*0.85; break; default: printf("\nSie haben eine falsche Eingabe gemacht!"); } printf("\n\nIhr Idealgewicht ist "); printf("%d",kgw); printf("kg."); getch(); }
dann solltest du vielleicht eine zweite abfrage früher machen, klar, JETZT wird per switch einfach überprüft, ob das eine oder das andere stimmt, wenn net kommt default und DANN kommt natürlich die message mit der falschen eingabe
ohne dass ich jetzt C könnte:
Code:#include <stdio.h> #include <conio.h> void main () { clrscr(); printf("Sind Sie (m)ännlich oder (w)eiblich?\n"); int kg,kgw; char ge; ge=getchar(); if(ge!='m' && ge!='m') { printf("\nSie haben eine falsche Eingabe gemacht!"); } else { printf("\nGeben Sie bitte Ihre Körpergröße in Zentimeter ein:\n"); scanf("%d",&kg); switch(ge) { case 'm': kgw=(kg-100)*0.9; break; case 'w': kgw=(kg-100)*0.85; break; } printf("\n\nIhr Idealgewicht ist "); printf("%d",kgw); printf("kg."); getch(); } }
default is ja die message für die falsche angabe
gleich nach der eingabe eine if-anweisung hinmachen
also:
if(eingabe != m && w)
{
printf("Falsche Eingabe!")
}
else
....
kannst den source in einem "schönen stil" posten? bin ned gewohnt c aus so einer zeichenschlange zu lesen und mich gfreuts ned des auseinanderzuschlichten 
hi!
naja ansich ist das komisch (und es ist lang her, dass ich was mit C zu tun hatte), aber meinen erinnerungen entsprechend klingt das nach etwas, mit dem mich Visual C++ 6 in den Wahnsinn getrieben hat, weil das hatte auch die angewohnheit das zu tun. Logisch ist es nicht, du wirst da wohl schrittweise durchgehen müssen (debug-modus und dann mit steps vorarbeiten)
oder du änderst den algoritmus zum geschlecht einlesen in das hier ab:
Code:do { ge=getchar(); } while(ge!="m" && ge!="w")
Zitat von aNtraXxkannst den source in einem "schönen stil" posten? bin ned gewohnt c aus so einer zeichenschlange zu lesen und mich gfreuts ned des auseinanderzuschlichten

[Way OT]
Brrr, nach so vielen Jahren verwenden's immer noch bcc für DOS in der Schule!
Wie schon geschrieben, schieb halt die Überprüfung der Fehlerbedingung weiter rauf, wahrscheinlich magst auch noch eine Schleife machen, die so lange fragt, bis was vernünftiges eingegeben wurde.
das hab ich mir auch schon gedacht wieso ned was anständiges
naja wennst dich a bissl anstrengst kannst auch das lesen aber unter "übersichtlich" versteh ich was anderes
bei so kurzen programmen würde ich die variablen noch global deklarieren.
gibt auch noch übersichtpunkte dazu 
an ringding:
wegen schleife: s.o.
und wegen bcc: na klar, womit sollte man sonst anfangen? Ich finde zum programmieren lernen gibt es nichts besseres. Man will einen Anfänger ja nicht mit Windows-Programmierung belasten (und die Visual Umgebung ist auch recht komplex), Visual Basic nenne ich nicht programmieren, und dafür sollte man ausserdem ein verständnis für objekte haben, Java zum Programmieren lernen: vergiss es(konstruktor,polymorphie,zugriffsrechte,klassenklassen,...)! bleiben nur noch das gute alte C (von dem man sich dann zu C++ vorwärtskämpft) und Pascal, wobei C irgendwie mehr sinn macht, als pascal, weil man darauf C++ aufbauen kann und auf das dann eine ganze menge!
habs jetzt mit einer if-abfrage probiert
für mich wärs logisch, aber es geht nicht - sobald ich was anderes als m oder w eingeb, wird aus dem programm ausgestiegen
Code:#include <stdio.h> #include <conio.h> void main () { clrscr(); printf("Sind Sie (m)„nnlich oder (w)eiblich?\n"); int kg,kgw; char ge; ge=getchar(); if(ge!='m' && ge!='w') { printf("\nSie haben eine falsche Eingabe gemacht!"); } else { printf("\nGeben Sie bitte Ihre K”rpergr”áe in Zentimeter ein:\n"); scanf("%d",&kg); switch(ge) { case 'm': kgw=(kg-100)*0.9; break; case 'w': kgw=(kg-100)*0.85; break; } printf("\n\nIhr Idealgewicht ist "); printf("%d",kgw); printf("kg."); getch(); } }
Edit: bullshit... 
musst du's vielleicht mit einer schleife machen, ich kann zwar net c, aber imho fragt die key-funktion den aktuellen tastencode ab (was einbisserl groggy is' aber was solls...)
overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2026