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 04.10.2002, 20:24   #21
kikakater
Inventar
 
Registriert seit: 24.01.2001
Beiträge: 5.631


Standard

Na geht eh mit switch/case:

Code:
category= (kg < 10) ? 1 : (kg < 20) ? 2 : (kg < 30) ? 3 : 4;

if(kg<0) category=0;

switch(category)
{
 case 1:
  printf("kg liegt zwischen 0-9\n");
  break;

 case 2:
  printf("kg liegt zwischen 10-19\n");
  break;

 case 3:
  printf("kg liegt zwischen 20-29\n");
  break;

 case 4:
  printf("kg ist 30 oder höher\n");
  break;

 default:
  printf("kg ist in keinem definierten Wertebereich\n");
  break;

}
kikakater ist offline   Mit Zitat antworten
Alt 04.10.2002, 20:33   #22
pirate man
Inventar
 
Registriert seit: 15.06.2000
Beiträge: 2.833


Standard

hm, mein programm hat einige fehler - und zwar in den zeilen 22, 26, 32, 32, 38, 38, 44, 55
das programm hab ich an diesen post angehängt
ich weiß leider nicht, was ich falsch gemacht hab - trotz dem text, den turbo c ausgibt
pirate man ist offline   Mit Zitat antworten
Alt 04.10.2002, 20:38   #23
pc.net
Aussteiger
 
Benutzerbild von pc.net
 
Registriert seit: 07.10.2001
Ort: Nettistan
Beiträge: 12.997

Mein Computer

Standard

@kikakater
boah, elegant ... auf die idee hätt ich eigentlich auch schon mal kommen können
____________________________________
Praktizierender Eristiker

No hace falta ser un genio para saber quién dijo eso.
Der wirklich faule Mensch ist oft extrem fleißig, denn er will möglichst schnell wieder faul sein.
pc.net ist offline   Mit Zitat antworten
Alt 04.10.2002, 20:40   #24
kikakater
Inventar
 
Registriert seit: 24.01.2001
Beiträge: 5.631


Standard

Cooles Programm

numerische_variable < 22

und nicht

numerische_variable '<22'

die Apostroph Zeichen werden nur für einzelne ASCII also char (=Character) Zeichen verwendet um eben die gerade genannten (ASCII bzw. char) Zeichen zu umschliessen.

Also entweder:

char_variable < 'A'

oder (gleichbedeutend):

char_variable < 65
kikakater ist offline   Mit Zitat antworten
Alt 04.10.2002, 20:42   #25
kikakater
Inventar
 
Registriert seit: 24.01.2001
Beiträge: 5.631


Standard

@pc.net: Ja ... Hi Fans, Victory Zeichen, *Herum geh 360°*
kikakater ist offline   Mit Zitat antworten
Alt 04.10.2002, 21:21   #26
kikakater
Inventar
 
Registriert seit: 24.01.2001
Beiträge: 5.631


Standard

Code:
#include <stdio.h>
#include <conio.h>

char *diagnose[] = { "Unter" , "Ideal" , "Normal" , "Über" };

void main ()
{
 int gr=1,kgw;
 char ge;
 int diagnose_index;

 for( ; ; )
 {
  clrscr();

  printf("Geben Sie bitte ihr Geschlecht ein (m für männlich/w für weiblich oder e für Ende): ");
  for( ge = 0
    ; ge != 'm' && ge != 'w' && ge != 'e'
    ; printf("\nSie haben eine falsche Eingabe gemacht! Bitte m/w oder e eingeben ") )
  {
   ge=getchar();
   if( ge >= 'A'  &&  ge <= 'Z' ) ge += 32;
  }

  if( ge == 'e' ) break;

  printf("\nGeben Sie bitte Ihr Körpergewicht ein: ");
  scanf("%d",&kgw);
  bmi=kgw/(gr*gr); /* der Wert von gr ist undefinert !!!!!!!!!!! ????????????, im Moment hab' ich gr mit 1 initialisiert :rolleyes: */

  if(ge=='m') diagnose_index = (bmi < 22) ? 0 : (bmi < 24) ? 1 : (bmi < 26) ? 2 : 3;
  if(ge=='w') diagnose_index = (bmi < 21) ? 0 : (bmi < 23) ? 1 : (bmi < 25) ? 2 : 3;

  printf("Sie haben %sgewicht, da Sie einen BMI von %d haben. <Taste> " ,diagnose[diagnose_index] ,bmi);
  getch();

 }

}
kikakater ist offline   Mit Zitat antworten
Alt 04.10.2002, 21:28   #27
pirate man
Inventar
 
Registriert seit: 15.06.2000
Beiträge: 2.833


Standard

@ kikakater
soweit simma noch gar ned
hab jetzt nochmal das programm angehängt, hab noch immer 6 fehler drin
pirate man ist offline   Mit Zitat antworten
Alt 04.10.2002, 21:38   #28
kikakater
Inventar
 
Registriert seit: 24.01.2001
Beiträge: 5.631


Standard

Code:
 printf("%d",&bmi);
-------------^ des is foisch, tut leid

& ist der 'address of' Operator

& bmi oder &bmi oder &      bmi bedeutet liefere die Adresse von bmi
Bei printf musst Du '&' beim Verwenden einer numerischen Variablen weglassen, sonst bekommst Du ein undefiniertes Ergebnis beim printf, möglicherweise einen Laufzeitfehler (falsch gesetzter Stackpointer), weil eine Adresse vier Bytes am Stack belegt, printf nimmt bei '%d' in der Formatangabe aber nur zwei Bytes vom Stack, insofern gibt es deswegen vielleicht sogar einen Programmabsturz.
kikakater ist offline   Mit Zitat antworten
Alt 04.10.2002, 21:52   #29
kikakater
Inventar
 
Registriert seit: 24.01.2001
Beiträge: 5.631


Standard

variable => 1 ist falsch, es muss variable >= 1 heißen

Als letzte Zeile musst Du noch eine "geschweifte Klammer geschlossen" anfügen >>> } <<<

Du hast eine Klammerebene übersehen ...

Ich wollte Dich zuerst selber die Fehler finden lassen.

Du musst die Fehlerhinweise der Integrierten Entwicklungsumgebung von Turbo C bzw. wahlweise die Compilerfehlermeldungen im Konsolenfenster (DOS) kennenlernen und Bescheid wissen, was sie bedeuten.
kikakater ist offline   Mit Zitat antworten
Alt 04.10.2002, 21:52   #30
pirate man
Inventar
 
Registriert seit: 15.06.2000
Beiträge: 2.833


Standard

hm, jetzt bleiben noch 2 fehler:
zeile 22: undefined symbol 'bmi'
zeile 55: compound statement missing }
pirate man ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

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 01:14 Uhr.


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