pirate man
Here to stay
|
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: #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();
}
ich hoffe, ihr könnt mir helfen danke, schon mal
|
watchout
Legendundead
|
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
|
MDK
Addicted
|
ohne dass ich jetzt C könnte: #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();
}
}
|
pirate man
Here to stay
|
default is ja die message für die falsche angabe
|
Duron
OC Addicted
|
gleich nach der eingabe eine if-anweisung hinmachen
also:
if(eingabe != m && w) { printf("Falsche Eingabe!") }
else ....
|
aNtraXx
trailer park king
|
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
|
Newcron
Bloody Newbie
|
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: do
{
ge=getchar();
} while(ge!="m" && ge!="w")
was tuts? durch die schleife wird so lange durchgerannt, solange in ge (und zwar immer NACH der eingabe) WEDER m noch w drin steht (while(ge IST NICHT m UND ge IST NICHT w) ) das gibt zwar keine fehlermeldung aus, akzeptiert aber nichts anderes und ist meiner meinung nach cooler!
|
Duron
OC Addicted
|
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 der _stil_ is meiner meinung nach schön genug und übersichtlich. andere schreibens gleich in einem absatz runter
|
Ringding
Pilot
|
[Way OT]
Brrr, nach so vielen Jahren verwenden's immer noch bcc für DOS in der Schule!
|
Ringding
Pilot
|
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.
|
aNtraXx
trailer park king
|
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
|
Duron
OC Addicted
|
bei so kurzen programmen würde ich die variablen noch global deklarieren. gibt auch noch übersichtpunkte dazu
|
Newcron
Bloody Newbie
|
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!
|
pirate man
Here to stay
|
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 #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();
}
}
Bearbeitet von pirate man am 03.10.2002, 22:25
|
watchout
Legendundead
|
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...)
Bearbeitet von watchout am 03.10.2002, 22:30
|