000
09.09.2012, 00:59 Uhr
~Rumeos
Gast
|
Hallo miteinander
Ich habe ein Problem.
In der Schule bekamen wir ein Buch (C programmieren von Anfang an) welches eigentlich sehr gut ist.
Nun musste ich (Aufgabe vom Buch) ein erstes kleineres Programm erstellen welches Grad Celsius in verschiedene andere Temperaturen umwandeln sollte. Dies habe ich nun gemacht und eigentlich sollte auch alles richtig sein aber... zuerst mal den Code:
---------------------------------------------------------------------------------------
C++: |
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// #include <stdio.h> //Präprozessor stdio wird eingefügt #include <ctype.h> //Präprozessor ctype wird eingefügt
void main() //Hauptteil ohne Rückgabe kommt { //Hauptteil beginnt float temperatur; //"temperatur" wird deklariert char zeichen; //"zeichen" wird deklariert printf("\n\tT E M P E R A T U R R E C H N E R\n"); //Titel printf("\n1 Fahrenheit \n2 Reamur \n3 Kelvin"); //Auswahlmöglichkeiten printf("\n4 Rank \n0 Ende"); //Auswahlmöglichkeiten printf("\n\nAuswahl: "); //Auswahl zeichen=getchar(); //Eingabe von "zeichen" fflush(stdin); //Enter-Fehlinterpreationsbeheber printf("\n"); //Zeilenabstand switch(zeichen) //Wechsel zu "zeichen" { //Erster "zeichen"-Block beginnt case '0': //Wenn 0 eingegeben wurde break; //beende Block case '1': case '2': case '3':case '4': //wenn 1,2,3 oder 4 eingegeben wurde printf("Bitte Grad Celsius eingeben: "); //Eingabe Aufforderung scanf("%f",&temperatur); //Eingabe von "temperatur" fflush(stdin); //Enter-Fehlinterpreationsbeheber //beende Block if(temperatur>=-273.15) //Wenn temperatur grösser oder gleich -273.15 switch(zeichen) //wechsle zu "zeichen" { //Zweiter "zeichen"-Block beginnt case '1': //Wenn "zeichen" gleich 1 printf("\n%2.f Grad sind %2.f Fahrenheit", //Ausgabe (Resultat) temperatur,9.0/5.0*temperatur+32.0); //Ausgabe (Resultat) getchar(); //Enter-Eingabe Aufforderung case '2': //Wenn "zeichen" gleich 2 printf("\n%2.f Grad sind %2.f Reamur", //Ausgabe (Resultat) temperatur,4.0/5.0*temperatur); //Ausgabe (Resultat) getchar(); //Enter-Eingabe Aufforderung case '3': //Wenn "zeichen" gleich 3 printf("\n%2.f Grad sind %2.f Kelvin", //Ausgabe (Resultat) temperatur,temperatur+273.15); //Ausgabe (Resultat) getchar(); //Enter-Eingabe Aufforderung case '4': //Wenn "zeichen" gleich 4 printf("\n%2.f Grad sind %2.f Rank", //Ausgabe (Resultat) temperatur,9.0/5.0*(temperatur+273.15)); //Ausgabe (Resultat) getchar(); //Enter-Eingabe Aufforderung break; //Beende Block } //Zweiter "zeichen"-Block endet else //Wenn if nicht zutrifft printf("\nDiese Temperatur gibt es nicht!"); //Ausgabe (Resultat) getchar(); //Enter-Eingabe Aufforderung default: printf("Ungueltige Option!"); //Wenn kein Case zutrifft getchar(); //Enter-Eingabe Aufforderung } //Erster "zeichen"-Block endet } //Hauptteil endet
|
--------------------------------------------------------------------------------------
Sorry für die vielen Kommentare
Nun aber zu meinem Problem. Das Programm sollte wie gesagt je nach gewählter Zahl die danach eingegebene Temperatur in eine andere Einheit umwandeln.
Gibt man aber bei diesem Programm z.B. 1 für Fahrenheit ein, und danach die Temperatur kommt nicht nur die umgewandelte Temperatur in Fahrenheit sondern gleich alle.
Hoffe ihr könnt mir helfen!
MfG Rumeos
Bearbeitung von 0xdeadbeef: |
edit- durch cpp-Tags ersetzt
|
Dieser Post wurde am 09.09.2012 um 01:56 Uhr von 0xdeadbeef editiert. |