c ++我的脚本出了什么问题?

时间:2016-12-19 22:27:43

标签: c++

基本上我想对我输入的任何数字进行平方。为什么这不起作用?

我编译,但它不会影响我的输入。

#include <iostream>

using namespace std;

float SquareNumber;
float Squared = SquareNumber * SquareNumber;



int main()
{

    cout << "Please enter a number to be squared: ";
    cin >> SquareNumber;

    cout << SquareNumber << " squared is " << Squared;


    system("pause");
    return 0;
};

2 个答案:

答案 0 :(得分:4)

  

我编译,但它不会影响我的输入。

输入数字后需要计算平方。在计算Squared时,SquaredNumber的值为0.0。因此,Squared的值也是0.0。

该行

float Squared = SquareNumber * SquareNumber;

此时使用Squared的值设置SquaredNumber的值。当Square的值发生变化时,不会更新 SquaredNumber的值。要获得该效果,您需要使用一个函数。

#include <iostream>

using namespace std;

float SquareNumber;

float Squared(float in)
{
   return in * in;
}

int main()
{
   cout << "Please enter a number to be squared: ";
   cin >> SquareNumber;

   cout << SquareNumber << " squared is " << Squared(SquareNumber);

   return 0;
};

答案 1 :(得分:0)

你的问题是你没有正确计算平方。您可以将其设为“compile time”,而不是“run time”。

只需将您的代码更改为此,但请确保您了解原因 - 并在此处询问您是否这样做(提示:在您知道数字是什么之前,如何计算数字的平方?)。

#include <iostream>

using namespace std;


int main()
{
    float SquareNumber;
    float Squared;

    cout << "Please enter a number to be squared: ";
    cin >> SquareNumber;

   Squared = SquareNumber * SquareNumber;   // calculate at *run time*

   cout << SquareNumber << " squared is " << Squared;


    system("pause");
    return 0;
};