Этот вопрос закрыт для ответов, так как повторяет вопрос Как исправить ошибку C4700 (используется неинициализированная переменная)?
@Pro100Vova5626

Использована неинициализированная локальная переменная?

В прогу вводится двоичное число, выводится десятичное

#include <iostream>

using namespace std;

int main() {

	setlocale(LC_CTYPE, "Russian");	// добавляет русский язык в консольное приложение

	
		int num, r, a, b = 0;
		cout << "Введите число в двоичной системе:  ";
		cin >> num;

		while (num != 0) {
			a = num % 10;
			if (b == 0)
				b = 1;
			if (b != 0)
				a *= b;
			r += a;
			b *= 2;
		}
		cout << "Число в десятичной системе = ", r;
	return 0;
}


Выводит ошибку: " Использована неинициализированная локальная переменная "r" ". Только для переменной "r". Для остальных переменных ошибок не показывает.
  • Вопрос задан
  • 14203 просмотра
Решения вопроса 1
@res2001
Developer, ex-admin
В чем вопрос?
Да использована не инициализированная переменная r.
Вы когда объявляете переменную внутри функции (автоматическую) без инициализатора, то ее реальное значение не определено, т.е. оно может быть любым. Любой мусор, который валяется в памяти по месту расположения переменной станет значением переменной.
А потом вы делает r += a; Т.е. вы складываете a с мусором. Что вы хотите получить в итоге?
Просто проинициализируйте r нулем, так же как это сделано для b.
Ответ написан
Ваш ответ на вопрос

Вопрос закрыт для ответов и комментариев

Потому что уже есть похожий вопрос.
Похожие вопросы
29 мар. 2024, в 15:28
10000 руб./за проект
29 мар. 2024, в 15:11
50000 руб./за проект
29 мар. 2024, в 15:06
50000 руб./за проект