disposableHero
Addicted
|
probiers so #include <stdio.h>
#include <conio.h>
void main ()
{
int kg,kgw;
char ge;
clrscr();
printf("Sind Sie (m)ännlich oder (w)eiblich?\n");
do{
ge=getche();
}while(ge!='w' || ge!='m') //solange wiederholen bis Eingabe korrekt
//solange ge NICHT GLEICH 'w' ODER ge NICHT GLEICH 'm'
//'x' NICHT "x" !!!
printf("\nGeben Sie bitte Ihre Körpergröße in Zentimeter ein:\n");
scanf("%d",&kg);
if(ge=='m')
kgw=(kg-100)*0.9;
if(ge=='w')
kgw=(kg-100)*0.85; //sind das offizielle Formeln? ;)
printf("\nIhr Idealgewicht ist %d kg",kgw); //und wieder 2 Zeilen gespart ;)
getch();
}
Bearbeitet von disposableHero am 03.10.2002, 22:34
|
Duron
Here to stay
|
solls in etwa so aussehen?
|
watchout
Legendundead
|
also, imho hast du derzeit kein problem mit c, sondern mit dem programmaufbau, du solltest dir das mal 'ausserhalb' des pc's überlegen - weil es hat ja keinen sinn, wenn wir's dir hier diktieren (ok, ich kanns eh net, weil ich kein c kann, dafür das gleiche prog in php oder vb schreib ich dir in 5 min.) dann hast du's wieder mal abgeschrieben aber kapiert wahrscheinlich trotzdem net... is net bös' gemeint, aber isso, ich kenn das zur genüge von meinem edv-unterricht
|
Duron
Here to stay
|
true, watchout. ich hatte auch immer leichte probs beim programmieren. gelöst hab ich sie durch schleimen, abschreiben und zum schluss durch lernen
|
disposableHero
Addicted
|
also, imho hast du derzeit kein problem mit c, sondern mit dem programmaufbau, du solltest dir das mal 'ausserhalb' des pc's überlegen - weil es hat ja keinen sinn, wenn wir's dir hier diktieren (ok, ich kanns eh net, weil ich kein c kann, dafür das gleiche prog in php oder vb schreib ich dir in 5 min.) dann hast du's wieder mal abgeschrieben aber kapiert wahrscheinlich trotzdem net... is net bös' gemeint, aber isso, ich kenn das zur genüge von meinem edv-unterricht  muss watchout recht geben! bin nicht um sonst nichtmehr an der htl
|
Neo-=IuE=-
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();
}
}
der fehler hier is noch, dass getch (das warten vor auf tastendruck vor beenden) in dem else zweig is und net allgemein am ende  aja @ programmaufbau: normalerweise macht man am anfang von der hauptfunktion (bzw von funktionen) alle variablendefinitionen und dann steht nur noch programmcode dadurch wirds gleich viel übersichtlicher
|
Neo-=IuE=-
Here to stay
|
so hätts ich gmacht:#include <stdio.h>
#include <conio.h>
void main()
{
int kg,gw;
char ge;
clrscr();
printf("Sind Sie (m)aennlich oder (w)eiblich?");
ge = getch();
if (ge != 'm' || ge != 'w')
printf("\nSie haben eine falsche Eingabe gemacht");
else
{
printf("\nGeben Sie bitte Ihre Koerpergroesse in Zentimeter ein:\n");
scanf("%d",&kg);
switch(ge)
{
case 'm':
gw=(kg-100)*0.9;
break;
case 'w':
gw=(kg-100)*0.85;
break;
} // end switch
printf("\n\nIhr Idealgewicht ist: %d kg",kgw);
} //end else
getch();
} //end
Bearbeitet von Neo-=IuE=- am 03.10.2002, 22:58
|
pirate man
Here to stay
|
juhu, jetzt gehts der fehler war, dass das getch(); im else-zweig war big thx @ neo
|
Master99
verträumter realist
|
jo, sorg amoi dafür, dass du da a bissal a Struktur rein bringst!
C unterscheides zwischen Groß- und Kleinschreibung!
es is z.b. sehr unübersichtlich, wie du das hier machst:
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!"); }
weil dann braucht man nämlich erstmal ne zeit, bis man checkt, unter welcher variable M oder W überhaupt gespeichert wird bzw. was die variable ge überhaupt für ne bedeutung hat!
also machs so:
int kg,kgw; char ge;
do { printf("Sind sie (m)aennlich oder (w)eiblich?"); ge = getchar();
if(....) printf("Eingabe falsch") } while(ge != 'm' && ge != 'M' && ge != 'w' && ge != 'W')
|
pirate man
Here to stay
|
eine frage hab ich noch wie bring kann ich das programm dazu bringen, nach der ausgabe ("ihr idealgewicht ist ...") nicht zu schliessen, sondern durch einen tastendruck nochmal von vorn anzufangen (eingabe von geschlecht usw.)?
|
that
Hoffnungsloser Optimist
|
mit einer Schleife.
|
Newcron
Bloody Newbie
|
an Master99: du könntest es natürlich auch so machen, was noch viel bessere stilvolle programmierung wäre: printf("m/w?");
do
{
ge=tolower(getch());
} while (ge!="m" || ge!="w")
// da gehört ein OR mit AND geht das nicht soweit ich mich erinnern kann..
|
Duron
Here to stay
|
eine frage hab ich noch wie bring kann ich das programm dazu bringen, nach der ausgabe ("ihr idealgewicht ist ...") nicht zu schliessen, sondern durch einen tastendruck nochmal von vorn anzufangen (eingabe von geschlecht usw.)? das ganze programm in eine do-while schleife rein: do {
ganzes Programm
printf("Neustart mit beliebiger Taste, beenden mit 'q'"); } while(getch() != 'q') Da beendest das Programm wennst 'q' eingibst und es startet neu wennst irgendwas anderes eingibst.
|
disposableHero
Addicted
|
an Master99: du könntest es natürlich auch so machen, was noch viel bessere stilvolle programmierung wäre:
printf("m/w?");
do
{
ge=tolower(getch());
} while (ge!="m" || ge!="w")
// da gehört ein OR mit AND geht das nicht soweit ich mich erinnern kann..
stimmt, und wennst genau schaust habe ich das auch schon gemeldet
|
MDK
Addicted
|
das halte ich jetzt aber für ein Gerücht:
bei ge=="m" würde es dann so auschauen ge!="m" --> false ge!="f" --> true false || true --> true
bei ge=="f" würde es dann so auschauen ge!="m" --> true ge!="f" --> false true || false --> true
bei ge=="y" würde es dann so auschauen ge!="m" --> true ge!="f" --> true true || true --> true
|