我对C++编程很感兴趣,我一直在研究以下任务:

我对C++编程很感兴趣,我一直在研究以下任务:,c++,function,C++,Function,编写一个函数的定义,该函数以三个数字作为输入。函数返回true 如果第一个数乘以第二个数的幂等于第三个数;否则, 返回false。假设这三个数字是double类型 程序运行并执行,但在完成所有操作后,它只返回0,而不是true或false。请问我哪里错了。先谢谢你。这是我目前的代码: #include <iostream> #include <math.h> using namespace std; class powers { private:

编写一个函数的定义,该函数以三个数字作为输入。函数返回true 如果第一个数乘以第二个数的幂等于第三个数;否则, 返回false。假设这三个数字是double类型

程序运行并执行,但在完成所有操作后,它只返回0,而不是true或false。请问我哪里错了。先谢谢你。这是我目前的代码:

#include <iostream>
#include <math.h>

using namespace std;

class powers
{
    private:
        double num1;
        double num2;
        double num3;

    public:
        bool takeInput(double, double, double);
};

int main()
{
    powers power;

    double a;
    double b;
    double c;

    cout << "please input first number: ";
    cin >> a;

    cout << "please input second number: ";
    cin >> b;

    cout << "please input third number: ";
    cin >> c;

    power.takeInput(a, b, c);
}

bool powers::takeInput (double num1, double num2, double num3)
{
    double a;
    double b;
    double c;

    num1 = a;
    num2 = b;
    num3 = c;

    if (pow(a, b) == (c))
        return true;
    else
        return false;
}

在takeInput中从不初始化变量a、b、c。我猜num1=a;应为a=num1;等等还要注意,power类字段num1、num2、num3也没有初始化,并且与takeInput参数同名,这可能会导致更多的混淆。您应该使用m_u前缀命名成员字段,或者使用显式方式访问它们,如->num1。还有,如果你的变量名为x1,x2。。。xn最好改用数组。

您的程序本身不会神奇地打印任何内容。要将true或false打印到标准输出,您必须调用函数power.takeInput,如main末尾所示

作为补充说明:

powers::takeInput的代码似乎不必要而且复杂。如果最终为变量a、b和c赋值num1、num2和num3,它们的用途是什么?为什么不直接使用这些值? 如果a,则返回true,否则返回false等于返回a。 –实际上,主函数的返回码始终是一个整数,它专门用于指示程序的成功执行。0表示执行成功。
你说程序只返回0是什么意思?你是说状态码,它是成功执行的标志,而不是任何结果的标志吗?要打印真还是假?请阅读。Stackoverflow既不是帮助台,也不是论坛。main不能返回true或false,它返回一个int b。如果你不从main返回任何内容,编译器将添加一个返回0;在你的mainStack结束时,溢出不是一个完成家庭作业的地方。从问题中提取精华。你不会走得太远,只要反复尝试,不断提问。我建议你找一份好的我明白了,谢谢你的帮助,我的错误主要是,打印iut是真是假我应该用cout不客气。如果问题已经解决,您可以单击左侧的绿色勾号接受答案!好的,我会的,再次谢谢。比你,我会记下来的
cout << power.takeInput(a, b, c) ? "true\n" : "false\n";