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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
artyom00007
0 / 0 / 0
Регистрация: 06.07.2012
Сообщений: 9
#1

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

06.07.2012, 15:29. Просмотров 316. Ответов 8
Метки нет (Все метки)

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++
код : #include &lt;iostream&gt; using namespace std; int main() { int u; cin&gt;&gt;u; int uu; for (int i=0;i&lt;u;i++) uu=i; ...

Студия подчеркивает как ошибку, но все работает. - C++
Сабж. MS Visual C++ 2010, Express. #include &lt;iostream&gt; #include &lt;time.h&gt; #include &lt;conio.h&gt; template &lt;typename T&gt; class var ...

Дается n чисел, нужно вывести сначала все нечетные а затем все четные (найти ошибку) - C++
Дается n чисел, нужно вывести сначала все нечетные а затем все четные, я написал но на втором тесте прога запарывается #include...

Программа пропускает ввод данных несмотря на fflush - C++
Доброго времени суток. Возникла проблема - когда я в первый раз в цикле ввожу текст посимвольно с помощью getchar, то все нормально. Однако...

error C2512: no appropriate default constructor available, несмотря на наличие конструктора по умолчанию - C++
Вот код: class University { string name; Human *chief; public: vector&lt;Faculty&gt; subList;

Неожиданный результат при выводе значения переменной, несмотря на инкремент - C++
подскажите почему значения a и с начинаются с 1 а не с 2 стоит же &quot;++&quot; int a = 1; void f() { int b = 1; // инициализируется...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Schizorb
509 / 461 / 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
719 / 519 / 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
719 / 519 / 24
Регистрация: 17.06.2010
Сообщений: 1,012
Записей в блоге: 1
06.07.2012, 15:37 #6
вообще много зависит от компилятора. некоторые компиляторы не прервут работу программы, а а просто выведут сообщение с предупреждением, ну и сам компилятор проинициализирует нулем.
ZaMaZaN4iK
Мой лучший друг-отладчик!
163 / 163 / 9
Регистрация: 24.06.2012
Сообщений: 662
Записей в блоге: 5
Завершенные тесты: 1
06.07.2012, 15:39 #7
Я думаю, что тут лучше применить do... while. И проблема сама собой отпадет.
Schizorb
509 / 461 / 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);
artyom00007
0 / 0 / 0
Регистрация: 06.07.2012
Сообщений: 9
06.07.2012, 15:43  [ТС] #9
Большое спасибо за ответы!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.07.2012, 15:43
Привет! Вот еще темы с ответами:

Почему адреса у указателей разные, несмотря на то, что они указывают на одну и ту же переменную? - C++
Почему адреса у указателей разные, они же указывают на одну и туже переменную int main() { setlocale(LC_ALL, &quot;Russian&quot;); char y =...

Не работает, найдите ошибку - C++
Задание: Дана целочисленная квадратная матрица порядка 5. Выяснить, имеются ли в матрице ненулевые элементы, и если имеются, то указать...

Несмотря на то, что переменная С имеет тип long int, возведение, к примеру, 100 в степень 5 совершается неверн - C++
Ребят, раньше программировал ( на уровне любителя ) только на скриптовых языках с динамической типизацией (в основном JS и Python), но так...

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


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
06.07.2012, 15:43
Ответ Создать тему
Опции темы

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