首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >(c++)返回和函数输出之间的错误

(c++)返回和函数输出之间的错误
EN

Stack Overflow用户
提问于 2017-02-28 21:29:29
回答 1查看 61关注 0票数 0

你好,我的C++程序(毕达哥拉斯定理)在将值返回到函数和使用cout获得输出之间有一个问题。

例如,如果我将a设置为3,b设置为0,c设置为2,则在运行程序并观察变量时,输出为0或nan。下面是有关变量的更多信息:

pyth_b_1 -(错误)在当前上下文中不可用!p_t() -(错误){浮点数(浮点数,浮点数,浮点数)} 0x4014ad

代码:

代码语言:javascript
运行
复制
cout<<"Set one value 0 to get answer for that variable \n";
        cout<<"Enter number or 0 for 'a': ";
        cin>>a;
        cout<<"Enter number or 0 for 'b': ";
        cin>>b;
        cout<<"Enter number or 0 for 'c': ";
        cin>>c;
        cout<<"You'r answer = "<<p_t(a, b, c)<<endl;

代码:

代码语言:javascript
运行
复制
float p_t(float a,float b,float c){

    if(a == 0 && b != 0 && c != 0){
    // 0 equals nothing for parameters
    cout<<"You chose to find a"<<endl;
    float pyth_c = (pow(c, 2)) - (pow(b, 2));
    float pyth_a  = sqrt(pyth_c);
    return pyth_a;
    }
    else if(a != 0 && b == 0 && c != 0){
    float pyth_c_1 = (pow(c, 2)) - (pow(a, 2));
    float pyth_b_1 = sqrt(pyth_c_1);
    return pyth_b_1;
    }
    else if(a != 0 && b != 0 && c == 0){
    float pyth_a_2 = (pow(a, 2)) - (pow(b, 2));
    return pyth_a_2;
    }

    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-28 21:34:11

根据您的代码,当a == 3,b == 0,c == 2时,我们得到:pyth_c = pow(2, 2) - pow(3, 2),给4 - 9 == -5的是什么。你不能取那个负数的平方根(至少是实数)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42519087

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档