Mam takie dwa programy, jeden do zamieniania temperatury w stopniach celsjusza na fahrenheita, a drugi do zamieniania prędkości w kmh na mph. Teraz zmodyfikowałem je odrobinę, i przestały działać poprawnie.
- Stopnie
#include <stdio.h>
#include <math.h>
float f; /* stopnie fahrenheita */
float c; /* stopnie celsjusza */
int wybor;
int main()
{
printf("\n\nWybierz rodzaj konwersji: \n\n");
printf("1. Stopnie Celsjusza na Fahrenheita. \n\n");
printf("2. Stopnie Fahrenheita na Celsjusza. \n\n");
scanf("%d", &wybor);
switch (wybor) {
case 1: printf("Podaj temperature w stopniach Celsjusza: \n\n");
scanf("%f", &c);
printf("Podana temperatura to %f stopni Fahrenheita. \n", f);
break;
case 2: printf("Podaj temperature w stopniach Fahrenheita: \n\n");
scanf("%f", &f);
printf("\n\nPodana temperatura to %f stopni Celsjusza. \n\n", c);
break;
}
return(0);
}
- Prędkość.
#include <stdio.h>
float kmh; /* kilometry na godzinę */
float mph; /* mile na godzinę */
int wybor;
int main()
{
printf("Wybierz rodzaj konwersji: \n");
printf("1. Kmh/Mph \n\n");
printf("2. Mph/Kmh \n\n");
scanf("%d", &wybor);
switch (wybor) {
case 1: printf("Podaj predkosc w kilometrach na godzine: \n");
scanf("%f", &kmh);
printf("Podana predkosc to %f mph.\n", mph);
break;
case 2: printf("Podaj predkosc w milach na godzine: \n");
scanf("%f", &mph);
printf("Podana predkosc to %f km/h. \n", kmh);
break;
}
mph = kmh * 0.6213712;
kmh = mph / 0.6213712;
return(0);
}
W tej chwili konwersja nie działa poprawnie ani w jednym ani w drugim. Program źle oblicza podane dane tak jakby nie czytał działań, na których się ma opierać. Czyli w stopniach F = (9/5) * (C + 32) i C = (5/9) * (F -32). Oraz w predkosci mph = kmh * 0.6213712 i kmh = mph / 0.6213712.
Co robię źle?