das is zwar wirklich krümelscheiße, aber du solltest drauf achten variablen nach größe zu sortieren. damit der compiler schneller auf die variablen zugreifen kann, verwendet er füllbytes, die einfach leer bleiben. also
Code:
char bla;
int blubb;
wird vom compiler zu
Code:
char bla;
char x, y, z;
int blubb;
wobei x, y, und z immer leer bleiben und für nichts reserviert sind.
und zwar, weil ein char nur 8 bit (ein byte) groß ist, während ein int 32 bit (also 4 byte) groß ist. der compiler versucht die variablen hintereinander im speicher abzulegen und legt dann aus geschwindigkeitsgründen die leeren füllbytes an. du solltest deine variablen also lieber so sortieren:
Code:
double a; // Länge a
double b; // Länge b
double e; // Länge e
double f; // Länge f
double k; // Kreisbogen
double r; // Radius
int    d; //
char   z; //
und pi würde ich als constante via #define festlegen -> speicherschonend.

MfG RiDER

EDiT:
und nach dem switch() würde ich nicht alles um 20 spaces einrücken :wink:
und getchar() statt cin für einen char verwenden.