![]() |
![]() |
|
|
|||||||
| 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) | |
|
|