Ascii
-
Hallo miteinander,
könnte mir bitte jemand knapp erläutern, warum man die Ascii Zeichen überhaupt hat?
Ich denke mal, dass ich diese bei folgendem Problem brauche. Ich bekomme mit dieser Funktion Werte zwischen 1 und 7. Allerdings überspringt dass Programm meine Verzweigung. Ich denke mal, dass das mit 'case1',usw. nicht funktioniert. Aber welche Bezeichnungen muss ich stattdessen benutzen?
w = fmod((t + (2.6*m - 0.2) + j + (j / 4) + (h / 4) + 5 * h),7) ; switch (w){ case'1': printf("Es handelt sich um einen Montag"); break; case'2': printf("Es handelt sich um einen Dienstag"); break; case'3': printf("Es handelt sich um einen Mittwoch"); break; case'4': printf("Es handelt sich um einen Donnerstag"); break; case'5': printf("Es handelt sich um einen Freitag"); break; case'6': printf("Es handelt sich um einen Samstag"); break; case'7': printf("Es handelt sich um einen Sonntag"); break; default: ;
-
dir ist klar das
die Zahl 1 nicht gleich dem Zeichen '1' ist?
laut
http://www.asciitable.com/ist '1' gleich dem Dezimalen Wert 49
-
das habe ich schon vermutet, dass ich einen anderen Wert angeben muss.
Habe es mit case'49' versucht, allerdings funktioniert dies auch nicht. Wenn ich mit der maus über die 49 gehe, zeigt mir mein editor die 13369.
-
Nimm die Zahl 1, nicht die Ziffer 1. Keine Hochkommata.
-
ok, danke!!!
Und wie mache ich es, wenn ich ein p eingeben möchte?case p :
funktioniert nicht.
-
Dulfried schrieb:
ok, danke!!!
Und wie mache ich es, wenn ich ein p eingeben möchte?case p :
funktioniert nicht.
Richtig, dass nach dem case muss eine Konstante sein.
Nutze dafür if.
-
Das funktioniert ebenfalls nicht.
Habe es mit dem Wert 112 für p und und so:
if(auswahl==p)
versucht.
-
Zeig vollständigen Code, definiere "funktioniert nicht".
-
ich kann das programm nicht debuggen.
Es kommt die Fehlermeldung, dass p nicht definiert ist.
-
Dulfried schrieb:
ich kann das programm nicht debuggen.
Es kommt die Fehlermeldung, dass p nicht definiert ist.Dann hast du dein Programm falsch geschrieben. Schreib Code, wir können nicht hellsehen!
-
Nachdem ich beim debuggen p eingebe kommt folgende Fehlermeldung: Ausnahmefehler bei 0x5153BBC2 (msvcr120d.dll) in 12. Umwandlung neu.exe: 0xC0000005: Zugriffsverletzung beim Schreiben an Position 0x00000000
#define _CRT_SECURE_NO_DEPRECATE #include<stdlib.h> #include<stdio.h> #include<iostream> #include<math.h> #include<windows.h> int main() { double x = 0; double y = 0; double r; double w; double bogenmass; char auswahl = 0; int p = 112; printf("Wollen Sie in Polarkoordinaten umwandeln oder in kartesische Koordinaten?\n"); printf("Polarkoordinate --> p kartesische Koordinaten -->k\n"); scanf("%c", auswahl); //Umrechnung von Polarkoordinaten in kartesische Koordinaten if(auswahl== p){ printf("Geben Sie den Betrag r ein:\n"); scanf("%lf", &r); fflush(stdin); printf("Geben Sie den Winkel w an:\n"); scanf("%lf", &w); fflush(stdin); bogenmass = w / 180 * 3.1415926535; x = r*(cos(bogenmass)); y = r*(sin(bogenmass)); printf("x= %lf und y= %lf\n", x, y); } //Umrechnung von kartesischen Koordinaten in Polarkoordinaten else{ printf("Geben Sie x ein:\n"); scanf("%lf", &x); fflush(stdin); printf("Geben Sie y ein:\n"); scanf("%lf", &y); fflush(stdin); r = sqrt((x*x) + (y*y)); bogenmass = (180 / 3.1415926535)*atan((y / x)); w = bogenmass * 180 / 3.1415926535; printf("r= %lf und w= %lf\n", r, w); } system("pause"); return 0; }
-
Schau dir an wie scanf funktioniert.
-
opala, danke
-
Haben wir gerade an einer Sozialstudie teilgenommen fürs kundenfreundlichste Forum?
-
Mach fflush(stdin) weg! Das führt zu undefiniertem Verhalten.
Und wenn #include<iostream> bei dir funktioniert, dann benutzt du wohl keinen C-Compiler.
Das Mischen von C und C++ wird nicht gerne gesehen
-
Und schau dir mal atan2 an: http://www.cplusplus.com/reference/cmath/atan2/
Achte auf die Reihenfolge der Parameter.