我一直在谷歌搜索幾個小時,但沒有運氣。正確的答案在返回之前,返回不正確
我使用標準的c,調用一個非常簡單的方法,並返回正確的值,但返回後的值是完全錯誤的。
電話:
//declare the gross and ficaTax variables
double gross;
double ficaTax;
//calculate the gross and the ficaTax
gross = calcGross(payRate, hours); printf("%f\n", gross); //DELETE
方法:
double calcGross(double rate, double hours){
double gross;
//if the person didn't work more than 40 hours
if(hours <= 40.0){
gross = hours * rate;
}
//if the person did work more than 40 hours
else{
gross = 40.0 * rate + ((hours - 40.0) * rate * 1.5);
}
printf("%f \t", gross);
return gross;
}
我打印出來的值,並開始嘗試解決這個問題的方法,但我無法弄清楚。下面是輸出:
(正確)(不正確的,返回後)
529.600000,-858993459.000000
1371.522500,171798692.000000
100.000000,0.000000
1515.710000,171798692.000000
977.255000,1030792150.000000
5631.360000,687194767.000000
7502.400000,1717986918.000000
4335.106000,584115553.000000
1924.181500,-618475291.000000
683.084000,137438953.000000
1348.424000,755914245.000000
1369.200000,-85 8993460.000000
529.600000,-858993459.000000
4441.522500,-1030792152.000000
100.000000,0.000000
1882.710000,171798692.000000
我唯一的猜測是,要麼我的雙回帖子是太長適合雙倍的長度,但是我將它存儲在一個雙重預回收中,並且打印正確。如果是這種情況,我無法弄清楚如何解決它。 我的另一個猜測是,我打印出錯後返回,但我打印它的方式相同。
我正在使用Linux和gcc編譯器(如果有的話)。任何幫助,將不勝感激。我一直在努力解決這個看似簡單的問題幾個小時。
編譯器是否發出任何警告?在通話之前您是否提供了該功能的原型? – FatalError 2012-03-20 03:23:10
你確定你給我們的代碼完全一樣嗎?你不可能拼錯打印出的變量名,或者在函數調用和printf()之間聲明一個新的'gross'? – 2012-03-20 03:23:44
試試%lf打印雙份 – John3136 2012-03-20 03:24:54