Всегда иметь значение 0 из sqrt () в VStack Overflow

У меня есть некоторые проблемы с функцией sqrt ()! Я довольно новичок, поэтому будьте снисходительны, ответ может быть очень простым. Итак, вот мой код:

#include <iostream>
#include <cmath>
using namespace std;

int main()
{
int touche;
int i;
float x;
float racx;
const int NFOIS = 5;
cout << "Bonjours!" << endl;
cout << "Je vais vous calculer " << NFOIS << " racines carrees" << endl;
for (i = 0; i < NFOIS; i++)
{
cout << "Donner un nombre: " ;
cin >> x;
if (x = 0.0)
{
cout << "Le nombre" << x << "ne possede pas de racines carrees!" << endl    ;
}
else
{
racx = sqrt(x);
cout << "Le nombre " << x << " a une racine carree de : " << racx << endl;
}
}
cout << "Programme termine veuillez entrer un charactere pour fermer le programme." << endl;
cin >> touche;
return 0;
}

Моя проблема в том, что когда я ввожу число (оно сохраняется, я проверил его с помощью cout, прежде чем публиковать его здесь «на всякий случай»), это когда sqrt (x); программа только сообщает программе, что x и racx равны 0, независимо от того, что я печатаю. Я действительно не знаю, что это может быть. Я также попытался изменить #include для «math.h» и все то же самое, поэтому я думаю, что мой код где-то не так.

Я использую Visual C ++ 2013, если вы хотите знать, что в Windows 7 Ultimate 64-бит.

PS: Как вы можете заметить, мой первый язык — французский, но не волнуйтесь, я очень хорошо понимаю английский, даже если я плохо пишу: P.

В любом случае, спасибо за внимание и помощь! Это будет оценено!

0

Решение

В этой строке:

  if (x = 0.0)

вы не сравниваете х с 0, а скорее присваиваете значение 0 х, что дает ложный в состоянии if, я полагаю, вы хотели использовать оператор равенства ==.

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

4

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]