![]() |
![]() |
|
![]() |
![]() |
|
Programmierung Rat & Tat für Programmierer |
![]() |
|
Themen-Optionen | Ansicht |
![]() |
#1 |
Inventar
![]() Registriert seit: 15.06.2000
Beiträge: 2.833
|
![]() 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(); } danke, schon mal |
![]() |
![]() |
![]() |
#2 |
Aussteiger
![]() |
![]() soweit ich mich erinnere, sollte das so gehen ...
Code:
#include <stdio.h> #include <conio.h> void main () { clrscr(); printf("Sind Sie (m)ännlich oder (w)eiblich?\n"); int kg,kgw; char ge="a"; // endlosschleife, aus der man nur mit der richtigen eingabe (m oder w) rauskommt while(ge!='m' && ge!='M' && ge!='w' && ge!='W') { 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(); }
____________________________________
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. |
![]() |
![]() |
![]() |
#3 |
Inventar
![]() Registriert seit: 15.06.2000
Beiträge: 2.833
|
![]() laut unserem lehrer sollte das mit switch/case zu lösen sein - ohne schleife
|
![]() |
![]() |
![]() |
#4 |
Inventar
![]() Registriert seit: 15.06.2000
Beiträge: 2.833
|
![]() hab jetzt deinen code probiert
wenn ich etwas anderes als m oder w eingeb, hupft der cursor in die nächste zeile und es tut sich nix |
![]() |
![]() |
![]() |
#5 |
Inventar
![]() Registriert seit: 24.01.2001
Beiträge: 5.631
|
![]() Du solltest die Tastatureingabe ohne Bildschirmecho machen und vor dem scanf mit gotoxy(x,y); den Cursor positionieren. Die Bedingung der while Schleife ist jedenfalls gut gelöst.
Für x und y musst Du selbstverständlich eigene Werte als Literale (=Direktwerte) verwenden, also zum Beispiel gotoxy(2,10); Spalte 2 Zeile 10 mfg Kikakater |
![]() |
![]() |
![]() |
#6 | |
Inventar
![]() Registriert seit: 15.06.2000
Beiträge: 2.833
|
![]() Zitat:
![]() |
|
![]() |
![]() |
![]() |
#7 |
Inventar
![]() Registriert seit: 24.01.2001
Beiträge: 5.631
|
![]() Code:
while(!kbhit()); /* solange keine Taste gedrückt wird kommt bei kbhit() 0 (=false) zurück */ key= getch(); if(kbhit()) key= getch(); /* 2 x getch notwendig für Sondertasten */ if(key>='A' && key<='Z') key+=32; /* von Großbuchstaben generell auf Kleinbuchstaben umschalten */ if(key!='m' && key!='w') printf("falsche Eingabe, m für männlich oder w für weiblich erwartet\n"); else { switch(key) { case 'm': ... break; case 'w': ... break; } } |
![]() |
![]() |
![]() |
#8 |
Inventar
![]() Registriert seit: 15.06.2000
Beiträge: 2.833
|
![]() das wird unserem lehrer mit sicherheit zu kompliziert sein
die befehle/funktionen, die du verwendest, haben wir noch nicht mal besprochen |
![]() |
![]() |
![]() |
#9 |
Inventar
![]() Registriert seit: 24.01.2001
Beiträge: 5.631
|
![]() Jedenfalls funktioniert es (Borland C), sonst halt nur key= getch(); verwenden und bei der switch Anweisung:
Code:
case 'm': case 'M': ... break; case 'w': case 'W': ... break; |
![]() |
![]() |
![]() |
#10 |
Inventar
![]() |
![]() @kikakater hab zwar schon lang kein c mehr gesehn, aber fehlt bei deinem case nicht ein default wert (sorry falls ich mich irre)
____________________________________
\"Ein Gewitter reinigt die Luft\", sagte der Mann, nachdem ein Blitz seine Frau erschlug Nicht klicken! Erstposteralarm/Beschwerde/Kummerkasten Verplattet |
![]() |
![]() |
![]() |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
|
|