您好,我在我的C++程序(畢達哥拉斯定理)之間的某個地方將問題返回給函數,並使用cout獲取輸出。(C++)返回和函數輸出之間的某處出錯
例如,如果我將a
設置爲3,b
設置爲0,並且c
設置爲2,則運行程序並觀察我的變量時,輸出爲0或nan。這裏是關於變量的更多信息:
pyth_b_1 - (error)在當前上下文中不可用! P_T() - (錯誤){浮動(浮動,浮動,浮動)} 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;
}
}
在情況1中,如果'c' <'b'那麼'pyth_c'將是負數。然後你嘗試取其平方根。在所有其他情況下也是如此。除了情況3缺少平方根呼叫。這是精簡如何使用調試器的完美程序。 –
我建議學習使用調試器。這將使編程無限輕鬆。 – dandan78