Форум программистов, компьютерный форум CyberForum.ru

Несмотря на ошибку, все работает - C++

Войти
Регистрация
Восстановить пароль
 
artyom00007
0 / 0 / 0
Регистрация: 06.07.2012
Сообщений: 9
06.07.2012, 15:29     Несмотря на ошибку, все работает #1
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
using namespace std;
 
float ctof(float c)
{
    float f;
    f = c * 9 / 5 + 32;
    return f;
}
 
int main()
{
    setlocale(LC_ALL, "russian");
    float cel;
    while (cel != 0)
    {
    cout << "Введите температуру по Цельсию: ";
    cin >> cel;
    cout << cel << " градусов по Цельсию = " << ctof(cel) << " по Фаренгейту." << endl;
    }
    system("pause");
    return 0;
}
Компилятор говорит, что переменная "cel" была использована без инициализации. Я нажимаю "Continue" и программа отлично выполняется, но все-таки не приятно постоянно наблюдать ошибку. Как модифицировать код, чтобы и переменная была инициализирована и цикл выполнялся?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.07.2012, 15:29     Несмотря на ошибку, все работает
Посмотрите здесь:

Студия подчеркивает как ошибку, но все работает. C++
C++ error C2512: no appropriate default constructor available, несмотря на наличие конструктора по умолчанию
C++ Дается n чисел, нужно вывести сначала все нечетные а затем все четные (найти ошибку)
Не работает, найдите пожалуйста ошибку C++
Не работает, найдите ошибку C++
почему работает несмотря ни на что? C++
Не могу найти ошибку, работает не правильно C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Schizorb
 Аватар для Schizorb
508 / 460 / 16
Регистрация: 07.04.2012
Сообщений: 865
Записей в блоге: 1
Завершенные тесты: 1
06.07.2012, 15:31     Несмотря на ошибку, все работает #2
Инициализировать её. Или использовать цикл с постусловием.
artyom00007
0 / 0 / 0
Регистрация: 06.07.2012
Сообщений: 9
06.07.2012, 15:32  [ТС]     Несмотря на ошибку, все работает #3
Цитата Сообщение от Schizorb Посмотреть сообщение
Инициализировать её. Или использовать цикл с постусловием.
А как выглядит цикл с постусловием?
gitarillo
 Аватар для gitarillo
716 / 516 / 24
Регистрация: 17.06.2010
Сообщений: 1,012
Записей в блоге: 1
06.07.2012, 15:33     Несмотря на ошибку, все работает #4
Цитата Сообщение от artyom00007 Посмотреть сообщение
Как модифицировать код, чтобы и переменная была инициализирована и цикл выполнялся?
Явно инициализировать переменную.
artyom00007
0 / 0 / 0
Регистрация: 06.07.2012
Сообщений: 9
06.07.2012, 15:35  [ТС]     Несмотря на ошибку, все работает #5
Цитата Сообщение от gitarillo Посмотреть сообщение
Явно инициализировать переменную.
Можно, конечно, и инициализировать. Например, присвоить единицу. Но выглядеть это будет не очень с то точки зрения стилистики, так как переменная так или иначе будет инициализирована значением из потока.
gitarillo
 Аватар для gitarillo
716 / 516 / 24
Регистрация: 17.06.2010
Сообщений: 1,012
Записей в блоге: 1
06.07.2012, 15:37     Несмотря на ошибку, все работает #6
вообще много зависит от компилятора. некоторые компиляторы не прервут работу программы, а а просто выведут сообщение с предупреждением, ну и сам компилятор проинициализирует нулем.
ZaMaZaN4iK
Мой лучший друг-отладчик!
 Аватар для ZaMaZaN4iK
163 / 163 / 9
Регистрация: 24.06.2012
Сообщений: 662
Записей в блоге: 5
Завершенные тесты: 1
06.07.2012, 15:39     Несмотря на ошибку, все работает #7
Я думаю, что тут лучше применить do... while. И проблема сама собой отпадет.
Schizorb
 Аватар для Schizorb
508 / 460 / 16
Регистрация: 07.04.2012
Сообщений: 865
Записей в блоге: 1
Завершенные тесты: 1
06.07.2012, 15:40     Несмотря на ошибку, все работает #8
Цитата Сообщение от artyom00007 Посмотреть сообщение
А как выглядит цикл с постусловием?
C++
1
2
3
4
5
6
7
do
{
    cout << "Введите температуру по Цельсию: ";
    cin >> cel;
    cout << cel << " градусов по Цельсию = " << ctof(cel) << " по Фаренгейту." << endl;
}
while (cel != 0);
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.07.2012, 15:43     Несмотря на ошибку, все работает
Еще ссылки по теме:

Некорректно работает функция добавления, указать ошибку C++
Неожиданный результат при выводе значения переменной, несмотря на инкремент C++
C++ Программа пропускает ввод данных несмотря на fflush
Почему адреса у указателей разные, несмотря на то, что они указывают на одну и ту же переменную? C++
После удаления (перезаписи) данных из бинарного файла, файл всё равно существует, несмотря на то, что он пуст C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
artyom00007
0 / 0 / 0
Регистрация: 06.07.2012
Сообщений: 9
06.07.2012, 15:43  [ТС]     Несмотря на ошибку, все работает #9
Большое спасибо за ответы!
Yandex
Объявления
06.07.2012, 15:43     Несмотря на ошибку, все работает
Ответ Создать тему
Опции темы

Текущее время: 23:23. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru