C++ VC+;中sqrt()的值始终为0+;
我对函数sqrt()有一些问题!我是一个初学者,所以请宽容,答案可能很简单。这是我的代码:C++ VC+;中sqrt()的值始终为0+;,c++,visual-c++,sqrt,math.sqrt,C++,Visual C++,Sqrt,Math.sqrt,我对函数sqrt()有一些问题!我是一个初学者,所以请宽容,答案可能很简单。这是我的代码: #include <iostream> #include <cmath> using namespace std; int main() { int touche; int i; float x; float racx; const int NFOIS = 5; cout << "Bonjours!" <<
#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;
}
#包括
#包括
使用名称空间std;
int main()
{
内部接触;
int i;
浮动x;
浮动racx;
常数NFOIS=5;
cout在这一行:
if (x = 0.0)
您不是将x与0进行比较,而是将值0赋给x,这将在“if”语句中产生false,我假定您希望使用相等运算符==
这是一个很常见的问题(混淆==,有些语言(不是c++)甚至有==),所以不要担心,你似乎努力寻找原因,这个问题有所有需要的答案,做得好,学习愉快。在这一行:
if (x = 0.0)
您不是将x与0进行比较,而是将值0赋给x,这将在“if”语句中产生false,我假定您希望使用相等运算符==
这是一个很常见的问题(混淆==,有些语言(不是c++)甚至有==)所以别担心,似乎你已经尽力找到了原因,问题已经解决了,干得好,学习也很有趣。x=0.0
将x
设置为零,而不是检查它是否为零。同样值得注意的是,打开编译器警告可能有助于检测这些赋值的使用,其中比较是有意的。我不知道VC++,但gcc
肯定会产生这个警告。你怎么会认为0没有平方根?只有负数没有平方根。问题被发现了,我犯了一个错误,不是=但是"x=0.0
将x
设置为零,而不是检查它是否为零。还值得注意的是,打开编译器警告可能有助于检测这些用于比较的赋值。我不知道VC++,但gcc
肯定会产生此警告。你为什么认为0没有平方根只有负数没有。问题被发现了,我犯了一个错误,它不是=而是“谢谢你!事实上它是”谢谢你!事实上它是“