(c++) return 和函数输出之间的错误
(c++) Error somewhere between return and function output
你好,我的 C++ 程序(毕达哥拉斯定理)在将我的值返回给函数和使用 cout 获取输出之间的某个地方遇到了问题。
例如,如果我将 a
设置为 3,将 b
设置为 0,将 c
设置为 2,当 运行 程序并观察我的变量时,输出是 0 或 nan。以下是有关变量的更多信息:
pyth_b_1 - (error) Not available in current context! p_t() - (error) {float (float, float, float)} 0x4014ad
代码:
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;
代码:
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;
}
}
好吧,根据您的代码,当 a == 3、b == 0、c == 2 时,我们得到:pyth_c = pow(2, 2) - pow(3, 2)
,结果是 4 - 9 == -5
。您不能对该负数求平方根(至少是实数)。
你好,我的 C++ 程序(毕达哥拉斯定理)在将我的值返回给函数和使用 cout 获取输出之间的某个地方遇到了问题。
例如,如果我将 a
设置为 3,将 b
设置为 0,将 c
设置为 2,当 运行 程序并观察我的变量时,输出是 0 或 nan。以下是有关变量的更多信息:
pyth_b_1 - (error) Not available in current context! p_t() - (error) {float (float, float, float)} 0x4014ad
代码:
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;
代码:
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;
}
}
好吧,根据您的代码,当 a == 3、b == 0、c == 2 时,我们得到:pyth_c = pow(2, 2) - pow(3, 2)
,结果是 4 - 9 == -5
。您不能对该负数求平方根(至少是实数)。