我正在做一個簡單的勾股式函數 用戶輸入兩個數字,兩個數字都發送到一個名爲Hypo的用戶定義函數,而hypo應該返回一個值C ,這是答案。用戶自定義函數的返回值有問題
這是我的腳本。
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int hypo(double a, double b);
int main(void)
{
double one, two;
//user inputs two variables
scanf("%lf %lf", &one, &two);
printf("Your C number is: %.2lf\n", hypo(one, two));
system("PAUSE");
return 0;
}
/*-------------------------------------------------------------------------*/
int hypo(double a, double b)
{
double c;
c = sqrt((a*a)+(b*b));
printf("Currently, A = %.2lf, and B = %.2lf, C = %.2lf\n", a, b, c);
return c;
}
在我的電腦上,它一直工作到最後,返回c;由於某種原因,它將值0返回給Main函數。 (我測試過,看錯誤是在哪裏,因此在低功能的printscreening。)
我想了解這一點。
我很確定我有synax錯誤,或者有些東西我還沒有讀完,但已經過了我的頭,但是經過一個小時瀏覽書籍並檢查youtube視頻,我不明白爲什麼會這樣不工作。
編輯:
謝謝大家的快速回復!我把它改成了兩倍,(在這個過程中我意識到我的錯誤也是xD),現在它就像一種魅力。 很高興與速度有多快,你們所有的回答,我一定會直傳吧:)
@PieterGeerkens:當然它編譯。 'double'到'int'是一個標準轉換,C風格的可變參數函數不提供任何類型檢查。這裏最大的問題是使用'scanf'和'printf',而不是類型安全的C++等價物。 – 2013-03-05 22:14:32
我只看到'C'。 – 2013-03-05 22:32:15