Как исправить Error C4700: использована неинициализированная локальная переменная «x»?

#include <iostream>
#include<math.h>
using namespace std;

int main()
{
	setlocale(LC_ALL, "Ukrainian");
	float y, x, t, z, k;
	cout << "Введіть k:";
	cin >> k;
	if ((k <= 10) && (0 < k))
		z = abs(sin(k));
	else z = 10;
	y = pow(x, k * 1) + fabs(pow(sin(x), 2) + sqrt(1 + pow(sin(x), 3)));
	x = (3 * z + tan(t*z)) / (t + 1);
	t = (z) / (1 + exp(k));
	cout << "k=" << k << "z=" << z << "y=" << y << "x=" << x << "t=" << t << endl;
	return 0;
}
  • Вопрос задан
  • 212 просмотров
Решения вопроса 2
@res2001
Developer, ex-admin
Переменная x при определении не инициализируется. Впервые в коде встречается в этой строке:
y = pow(x, k * 1) + fabs(pow(sin(x), 2) + sqrt(1 + pow(sin(x), 3)));

Т.е. вы что-то пытаетесь вычислить используя данные из переменной х. Какое значение имеет переменная x в этом выражении? Т.к. вы не задаете значение переменной в программе до использования переменной, то переменная содержит любое произвольное значение, мусор.
С переменной t все аналогично.
Ответ написан
Комментировать
by_kapt0xa
@by_kapt0xa
Учу кресты катаюсь на велике
чтобы код не искажался, используйте кнопку для вставки кода (см. прикрепленное изображение)
просто у вас пропало то, что находится в угловых скобках

попробуйте вот так:
float y = 0, x = 0, t = 0, z = 0, k = 0;//при создании задавайте значение поумолчанию


или так так:
float y, x = 0, t = 0, z, k;

с++ не задает переменным значение по умолчанию, если это не структура или класс с конструктором (я упрощаю)
в переменной будет записан какой-то мусор, оставшийся от работы компьютера.

6375b2975432d407708901.png
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@C15H22N6O5S
Совет на будущее как правильно решать подобные проблемы. Берёте этот Error C4700 и идёте в гугл. Попутно узнаёте много нового.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы