0

我对函数 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。我真的不知道它可能是什么。我还尝试更改“math.h”的#include,但还是一样,所以我认为我的代码在某处是错误的。

如果您想知道在 windows 7 终极 64 位中,我使用 Visual c++ 2013。

PS:你可以注意到我的第一语言是法语,但别担心,即使我不擅长写作,我也能很好地理解英语:P。

无论如何,感谢您的关注和帮助!将不胜感激!

4

1 回答 1

6

在这一行:

  if (x = 0.0)

您不是将 x 与 0 进行比较,而是将值 0 分配给 x,这在“if”语句中产生错误,我假设您想使用相等运算符 ==。

这是一个很常见的问题(将 = 与 == 混淆,并且某些语言(不是 c++)甚至有 ===)所以不用担心,看来您已经努力寻找原因,而问题包含了所有需要的东西回答它,干得好,学习愉快。

于 2014-04-05T22:37:01.500 回答