?
Versuche so was in der Art:
//Einheitennamen
const char *en[] = {
"Celsius",
"Kelvin",
"Fahrenheit",
"Reaumur"
};
int main(void) {
int t; //Temperatur
int e; //Einheit
int u; //Umrechnungs Einheit
int tc; //Celsius
int tu; //Umrechnungs Temperatur
printf("Geben Sie bitte die Temperatur an:\n");
scanf_s("%d", &t); //Eingabe der Temperatur
printf( "\tEs gilt:\n" \
"\t1 = C(elsius)\n" \
"\t2 = K(elvin)\n" \
"\t3 = F(ahrenheit)\n" \
"\t4 = R(eaumur)\n" );
printf("Geben Sie an, von welcher Einheit aus Sie umrechnen moechten\n");
for(;;) {
scanf_s("%d", &e); //Eingabe der Einheit
if(e < 1 || e > 4) { //Pruefe, ob Eingabe zwischen 1 und 4 liegt
printf("Nur Werte von 1 bis 4 sind erlaubt. Versuche es erneut.\n");
} else {
break;
}
}
printf("In welche Einheit moechten Sie umrechnen?\n");
for(;;) {
scanf_s("%d", &u); //Eingabe der Umrechnungs Einheit
if(u < 1 || u > 4) { //Pruefe, ob Eingabe zwischen 1 und 4 liegt
printf("Nur Werte von 1 bis 4 sind erlaubt. Versuche es erneut.\n");
} else if(u == e) { //Pruefe, ob Einheiten identisch sind
printf("Die Einheiten duerfen nicht identisch sein. Versuche es erneut.\n");
} else {
break;
}
}
//Temperatur nach Celsius umrechnen
switch(e) {
case 1:
tc = t; //Celsius vorhanden, keine Umrechnung noetig
break;
case 2:
tc = /* ... */; //Kelvin zu Celsius
break;
case 3:
tc = /* ... */; //Fahrenheit zu Celsius
break;
case 4:
tc = /* ... */; //Reaumur zu Celsius
break;
}
//Celsius nach Umrechnungs Einheit umrechnen
switch(u) {
case 1:
tu = tc; //Wurde bereits umgerechnet
break;
case 2:
tu = /* ... */; //Celsius zu Kelvin
break;
case 3:
tu = /* ... */; //Celsius zu Fahrenheit
break;
case 4:
tu = /* ... */; //Celsius zu Reaumur
break;
}
//Ausgabe
printf("%d Grad %c(%s) sind umgerechnet %d Grad %c(%s).\n", t, en[e-1][0], &en[e-1][1], tu, en[u-1][0], &en[u-1][1]);
}