If mit buchstaben (c)

Status
Für weitere Antworten geschlossen.

Goku-_-

Cadet 2nd Year
Registriert
Apr. 2020
Beiträge
22
Hallo,

Code:
int antwort = 0;
 

    printf("Wollen Sie die Kreisflaeche (k) oder die Rechteckflaeche berechnen (r): ");
    scanf_s("%d",&antwort );

    if (antwort == 'r')
    {
        printf("Sie haben %d eingegeben.", antwort);
        printf("Rechteckflaechenberechnung\n");
        printf("Bitte geben Sie die Seite a ein: ");
        scanf_s("%f", &a);
        printf("Bitte geben Sie die Seite b ein: ");
        scanf_s("%f", &b);
        flaecheR = rechteckflaeche(b,a);
        printf("Der Flaecheninhalt betraegt: %.2f\n", flaecheR);

    }

Wenn ich dann zb. r eingebe krieg ich nix heraus und ich find nicht heraus woran es liegen könnte..
Ergänzung ()

Nicht wunder, ich hab nicht meinen gesamten Code eingefügt, weil mein Problem hier liegt.
 
Schau dir deine variable 'antwort' doch einfach mal vor dem if an. Was steht da drin, welcher typ ist es?
 
  • Gefällt mir
Reaktionen: sTuPiD-eLcH und EvoN3rd
Wie wäre es mit einem char oder string?
Weil deine Antwort 'r' ist ja kein integer oder float, richtig?
 
Das kannst du dir glaube ich selbst beantworten, indem du mal googlest, wie ein float in c aussieht. :)
 
  • Gefällt mir
Reaktionen: EvoN3rd
Worin liegt jetzt der Fehler ich habs nicht begriffen...^^
 
Deine Variable antwort hat den falschen Datentyp. Da passen jetzt nur Ganzzahlen rein, also keine Zeichen oder Zeichenketten. Du müsstest den Datentyp von antwort von int auf string oder char ändern
 
Toms schrieb:
Deine Variable antwort hat den falschen Datentyp. Da passen jetzt nur Ganzzahlen rein, also keine Zeichen oder Zeichenketten. Du müsstest den Datentyp von antwort von int auf string oder char ändern
Das haben wir leider nicht gelernt mit char oder string
 
int ganzzahl
float kommazahl
double längere kommazahl
char zeichen

nun speicherst du einen buchstaben als int und vergleichst es mit einem buchstaben

prinzipiell ist das nicht unmöglich, aber auch nicht ganz korrekt, da hierbei einiges berücksichtigt werden muss,
wenn typen konvertiert werden ...
r entspricht z.B. 114 in UTF-8
1589971705446.png


ändere mal int antwort; zu char antwort;

evtl. muss auch noch char antwort = new char(); oder char antwort = ''. so dass es auch initalisiert wird. Sorry etwas eingerostet.
 
Zuletzt bearbeitet:
Goku-_- schrieb:
Das haben wir leider nicht gelernt mit char oder string
Haben meine Kiddies auch immer gesagt, wenn ich sie was gefragt habe "Haben wir noch nicht gehabt".. Irgendwann sollte man aber anfangen, sein Wissen selbständig zu erweitern..
 
  • Gefällt mir
Reaktionen: Drahminedum, cruse und dominic.e
Sa.Lt schrieb:
int ganzzahl
float kommazahl
double längere kommazahl
char zeichen

nun speicherst du einen buchstaben als int und vergleichst es mit einem buchstaben

prinzipiell ist das nicht unmöglich, aber auch nicht ganz korrekt.

Das heißt ich soll jetzt den buchstaben r zum Beispiel mit char einlesen??
 
  • Gefällt mir
Reaktionen: Sa.Lt
Genau. Entweder als char einlesen (saubere Methode) oder den Vergleicher mit int also if (antwort == 114) umsetzen.
 
Kann mir nicht einfach jemand schnell zeigen wie es richtig geht damit ichs beim nächsten mal auch richtig mach und nicht eine halbe stunde vorm pc sitze.
 
So lernst du aber nix, wenn wir alles vorkauen ;)
 
  • Gefällt mir
Reaktionen: Ernie123, adAstra, BeBur und eine weitere Person
Das Problem ist, ich kann nicht mir nicht neue Sachen beibringen die wir im Unterricht nicht gelernt haben. Was soll sie sich dann denken wenn ich eine Arbeit schreibe und mit neuen Sachen ankomme.
 
Goku-_- schrieb:
Kann mir nicht einfach jemand schnell zeigen wie es richtig geht damit ichs beim nächsten mal auch richtig mach und nicht eine halbe stunde vorm pc sitze.

Ne halbe Stunde vorm PC sitzen um die Lösung für ein Code-Problem zu finden? Teilweise sitze ich mehrere Stunden vor dem Rechner und durchforste StackOverflow und google um Lösungswege zu finden :D
 
  • Gefällt mir
Reaktionen: Pyromane1, animagus46, Ernie123 und 2 andere
So ich soll jetzt in einem char den einen buchstaben einlesen und dann im if befehl da das %d zu einem %c abändern???
 
Goku-_- schrieb:
Das Problem ist, ich kann nicht mir nicht neue Sachen beibringen die wir im Unterricht nicht gelernt haben. Was soll sie sich dann denken wenn ich eine Arbeit schreibe und mit neuen Sachen ankomme.
Noch ein Grund keine fertige Lösung anzugeben, sondern dass du auf Grundlage von dem was ihr im Unterricht hattet eine Lösung erarbeitest.
 
  • Gefällt mir
Reaktionen: Der Lord
Status
Für weitere Antworten geschlossen.
Zurück
Oben