Fahrenheit <-> Celsius (вопрос новичка)
Модератор: Модераторы разделов
-
TeMy4uH
- Сообщения: 150
Fahrenheit <-> Celsius
Дали домашне задание. Заданик гласит: "Написать программу для перевода Fahrenheit <-> Celsius. Данные должны вводиться в ручную, так-же нужно в ручную выбирать что именно нужно переводить. Ввод данных должен повторяться до тех пор, пока при выборе не введётся 0.
Я написал вычисление и выбор, в какую сторону переводить, но никак не могу прикрутить петлю, чтобы ввод данных продолжался до тех пор, пока программа не будет закончена, т.е. пока не буддет введён 0...
Может кто-нибудь может мне помочь?
Я написал вычисление и выбор, в какую сторону переводить, но никак не могу прикрутить петлю, чтобы ввод данных продолжался до тех пор, пока программа не будет закончена, т.е. пока не буддет введён 0...
Может кто-нибудь может мне помочь?
-
Ballantre
- Сообщения: 114
- ОС: Linux
Re: Fahrenheit <-> Celsius
Вы знаете, бывает такой цикл, с постусловием, называется. Do{ ... } while 
Я двадцать лет знал его и всегда ненавидел, и всегда восхищался, и всегда по-рабски боялся его.
-
TeMy4uH
- Сообщения: 150
Re: Fahrenheit <-> Celsius
Знаю, знаю, но я не смог его никак прикрутить так, чтоб он работал...
-
Ballantre
- Сообщения: 114
- ОС: Linux
Re: Fahrenheit <-> Celsius
Обязателен чистый С, или и плюсы прокатят?
Я двадцать лет знал его и всегда ненавидел, и всегда восхищался, и всегда по-рабски боялся его.
-
Ballantre
- Сообщения: 114
- ОС: Linux
Re: Fahrenheit <-> Celsius
do{
cout << "Enter 1 from F to C, 2 from C to F, 0 to exit" << endl;
cin >> n;
switch n
( ... )
} while ( n )
Ну а переводи сам.
cout << "Enter 1 from F to C, 2 from C to F, 0 to exit" << endl;
cin >> n;
switch n
( ... )
} while ( n )
Ну а переводи сам.
Я двадцать лет знал его и всегда ненавидел, и всегда восхищался, и всегда по-рабски боялся его.
-
georgy_sh
- Сообщения: 1172
- Статус: thermonuclear...
- ОС: GNU/Linux
Re: Fahrenheit <-> Celsius
вот объясните Вы мне, пожалуйста
операция вставки << и извлечения >> , а так же имена стандартных потоков ввода/вывода (cin / cout) характерны только для С++, но никак не для чистого С ?
-
v04bvs
- Сообщения: 636
- ОС: Debian GNU/Linux
Re: Fahrenheit <-> Celsius
<< это не операция вставки, а операция бинарного сдвига.
Что сдвинулось в голове у Страуструпа, я лично не знаю
Вообще что мне реально не нравится в С++ - это его стандартная библиотека. Точнее то, что она в стандарте. Не нужна она там.
В данном случае важны 2 вещи, обеспечивающие type-safe IO - перегрузка функций и наличие классов.
PS приведённый фрагмент кода неверен как синтаксически, так и семантически.
-
elide
- Бывший модератор
- Сообщения: 2421
- Статус: Übermensch
- ОС: лялих
Re: Fahrenheit <-> Celsius
Код: Выделить всё
#include<stdio.h>
int main (){
float celsius;
float fahrenheit;
for(;;){
int wahl = 0;
printf("Waehlen Sie aus:\n1) Fahrenheit -> Celsius\n2) Celsius -> Fahrenheit\n0) Programm beenden\n\nWahl:");
scanf("%d", &wahl);
switch (wahl){
case 1:
printf("Fahrenheit in Celsius.\nWert: ");
scanf("%f", &fahrenheit);
celsius = 5/9.0 * (fahrenheit - 32);
printf("%f Grad Fahrenheit = %f Celsius\n", fahrenheit, celsius);
break;
case 2:
printf("Celsius in Fahrenheit\nWert: ");
scanf("%f", &celsius);
fahrenheit = celsius * 9/5.0 + 32;
printf("%f Celsius = %f Fahrenheit\n", celsius, fahrenheit);
break;
default:
return 0;
}
}
return 0;
}но по-хорошему, за такие темы надо выдавать предупреждения и лишать права постинга в раздел на неделю.
чтоб было время книжки почитать, ага.
слава роботам!
-
TeMy4uH
- Сообщения: 150
Re: Fahrenheit <-> Celsius
Не стоить быть таким строгим. Книжку я читаю, но for (;;) или while (1) я как-то пропустил пропустил...
-
georgy_sh
- Сообщения: 1172
- Статус: thermonuclear...
- ОС: GNU/Linux
Re: Fahrenheit <-> Celsius
это мне известно
ну зачем так?
вполне полезная штука, ИМХО
-
elide
- Бывший модератор
- Сообщения: 2421
- Статус: Übermensch
- ОС: лялих
Re: Fahrenheit <-> Celsius
потому, что перегрузку операторов стараются делать так, чтобы они продолжали выполнять свои функции, причем очевидным для операндов образом.
перегрузить операторы сдвига так, чтоб они выполняли операции ввода/вывода из потока - крайне сомнительная идея.
перегрузить операторы сдвига так, чтоб они выполняли операции ввода/вывода из потока - крайне сомнительная идея.
слава роботам!
-
Aectann
- Бывший модератор
- Сообщения: 3491
- Статус: ...
- ОС: OS X, GNU_и_не_только/Linux
Re: Fahrenheit <-> Celsius
Возможно это он(Страуструп) сделал потому, что операторы сдвига используются в С++ по прямому назначению редко, а текст чаще приходится вводить/выводить?
My god... it's full of stars!...
-
georgy_sh
- Сообщения: 1172
- Статус: thermonuclear...
- ОС: GNU/Linux