WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   Brauche Hilfe in C (http://www.wcm.at/forum/showthread.php?t=72235)

kikakater 03.10.2002 23:00

Ein default Zweig ist nicht zwingend notwendig, es geht ja nur um das Ausrechnen eines Wertes. Außerdem ist die switch Anweisung im else Zweig einer if(Bedingung==true) Konstruktion eingebettet. Insofern ist dort der default Zweig realisiert ...

pirate man 03.10.2002 23:23

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();

}
}


kikakater 03.10.2002 23:57

Ohne erneute Möglichkeit zur - dann korrekten - Eingabe wird das Programm eben weiter ausgeführt. In diesem Fall gibt es eben keine weiteren Befehle nach dem if-Befehl und deswegen wird das Programm beendet.

Verwende eine Schleife um die if() else Konstruktion und ein break; im else Zweig.

Code:

for( ; ; )
{

 key= getch();

 if(key!='m' && key!='M' && key!='w' && key!='W') printf(...);
 else
 {

  scanf(...);

  switch(key)
  {
  ...
  }

  break;
 }

}


pirate man 04.10.2002 00:03

ah, es geht schon
der fehler war, dass das getch(); im else-zweig war ;)

pirate man 04.10.2002 00:30

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.)?

kikakater 04.10.2002 00:36

Lösung steht oben, eine for Schleife verwenden.

pong 04.10.2002 07:40

Zitat:

Original geschrieben von pirate man
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.)?

Code:

printf...;
getch();


pirate man 04.10.2002 21:02

hm, hab noch eine frage :rolleyes:
ich will eine aktion ausführen, wenn die eingegebene zahl im bestimmten zahlenbereich ist
beispiel:
wenn die eingegebene zahl im zahlenbereich 10-20 ist, dann den text "blablabla" ausgeben
geht das nur mit if oder auch mit switch/case? habs mit switch/case probiert, aber leider dürften da < und > nicht gehen :(

pc.net 04.10.2002 21:11

bei switch/case kannst du nur exakte werte abfragen ... wertebereich gehen nur mit if ...

pirate man 04.10.2002 21:13

ok, thx


Alle Zeitangaben in WEZ +2. Es ist jetzt 16:35 Uhr.

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