Перевод градусов Фаренгейта в градусы Цельсия - C (СИ)
Формулировка задачи:
есть задание- перевод градусов Фаренгейта в градусы Цельсия, максимальное значение-300, минимальное-0, ход шага-20.
мой код выглядит вот так вторая же часть задания,это из Цельсия в фаренгейты и код должен выглядеть вот так
но когда я сверяю полученные результаты, с таблицей мер шкал,они не сходятся, в чем может быть проблема ?
#include <stdio.h>
int main()
{
#include <stdio.h>
int main()
{
int far,cels;
int lower,upper,step;
lower=0;
upper=300;
step=20;
far=lower;
while (far<=upper){
cels=5*(far-32)/9;
printf("%3d\t %6d\n",far,cels);
far=far+step;
}
}
}#include <stdio.h>
int main()
{
int far,cels;
int lower,upper,step;
lower=0;
upper=300;
step=20;
cels=lower;
while (cels<=upper){
far=9*(cels+32)/5;
printf("%3d\t %6d\n",cels,far);
cels=cels+step;
}
}Решение задачи: «Перевод градусов Фаренгейта в градусы Цельсия»
textual
Листинг программы
#include <stdio.h>
#include <conio.h>
#include <iostream.h>
#include <math.h>
void main()
{
float far;
float lower,upper,step;
upper=300.0;
step=20.0;
far=0.0;
while (far<=upper){
float cels=(far-32.0)*.55556;
cout<<far<<"\t"<<cels<<endl;
far+=step;
}
cout<<"------------------------"<<endl;
float cels1;
float upper1,step1;
upper1=300.0;
step1=20.0;
cels1=0;
while(cels1<=upper1){
float far1=float(cels1*1.8)+32.0;
cout<<cels1<<"\t"<<far1<<endl;
cels1+=step1;
}
getch();
return;
}
Объяснение кода листинга программы
- Объявляются переменные:
- far типа float для хранения значений в градусах Фаренгейта;
- lower, upper, step типа float для задания диапазона и шага изменения значений в первом цикле;
- upper1, step1 типа float для задания диапазона и шага изменения значений во втором цикле;
- cels1 типа float для хранения значений в градусах Цельсия в первом цикле;
- cels типа float для хранения значений в градусах Цельсия во втором цикле.
- Задаются начальные значения переменных:
- far устанавливается равным 0.0;
- cels1 устанавливается равным 0.0;
- upper и step задаются как 300.0 и 20.0 соответственно;
- upper1 и step1 задаются как 300.0 и 20.0 соответственно.
- Запускается первый цикл while, который выполняется до тех пор, пока значение переменной far не станет больше или равным upper. В каждой итерации цикла выполняется перевод значения far из градусов Фаренгейта в градусы Цельсия по формуле cels = (far - 32.0) * 0.55556 и выводится на экран. Значение far увеличивается на step после каждой итерации.
- Запускается второй цикл while, который выполняется до тех пор, пока значение переменной cels1 не станет больше или равным upper1. В каждой итерации цикла выполняется перевод значения cels1 из градусов Цельсия в градусы Фаренгейта по формуле far1 = float(cels1 * 1.8) + 32.0 и выводится на экран. Значение cels1 увеличивается на step1 после каждой итерации.
- Выводится горизонтальная линия из символов
-для разделения двух блоков вывода. - Выполняется функция getch() для приостановки выполнения программы до тех пор, пока пользователь не нажмет клавишу.
- Программа возвращает управление операционной системе.