Вывести в два столбца температуру по Цельсию и по Фаренгейту; исправить ошибку в коде - C (СИ)
Формулировка задачи:
Доброго времени суток! Недавно начал изучение Си и столкнулся с проблемой касающейся цикла while.
Приведу элементарный пример программы для вычислений.
#include <stdio.h>
main() {
int cel, far;
cel = -30;
far = cel + 9;
while(cel <= 30){
printf("%d\t%d\n", cel, far); //Есть мысль, что ошибка может быть в параметрах. Прав ли я?
cel = cel + 5;
//Программа как вы видите, должна выводить в два столбца температуру по Цельсию и по Фаренгейту(Данные "левые", привел просто для вида).
Я ожидал приблизительно вот такой вывод
-30 -21
-25 -12
.....
Но получил в ответ
-30 -21
-25 -21
-20 -21
...
Вот хотелось бы узнать в чем моя ошибка. Заранее спасибо всем кто ответит на данный вопрос!
}
}Решение задачи: «Вывести в два столбца температуру по Цельсию и по Фаренгейту; исправить ошибку в коде»
textual
Листинг программы
far = cel + 9;
while(cel <= 30){
printf("%d\t%d\n", cel, far); //Есть мысль, что ошибка может быть в параметрах. Прав ли я?
cel = cel + 5;
Объяснение кода листинга программы
В данном коде:
- Переменная
celинициализируется значением 0, а переменнаяfarне инициализируется. - В цикле while происходит наращивание значения переменной
celна 5 при каждой итерации. - В каждой итерации цикла происходит конвертация значения переменной
celв градусы Фаренгейта по формулеfar = cel + 9. - Затем происходит вывод значений переменных
celиfarв форматечисло\tчислос помощью функции printf. - После каждой итерации цикла значение переменной
celувеличивается на 5. - Цикл while выполняется до тех пор, пока значение переменной
celне станет больше 30. Ошибка в коде заключается в том, что значения переменныхcelиfarне выводятся в столбцах, разделенных табуляцией, а выводятся в одной строке. Кроме того, переменнаяfarне инициализируется, что может привести к непредсказуемым результатам при выполнении программы.