我在我的C代碼中有一個連續的循環,我無法弄清楚它爲什麼這樣做。我覺得我錯過了一些在這裏顯而易見的東西,但由於某種原因我無法看到它。這裏是導致循環的代碼段:我有一個連續的循環,我無法弄清楚它有什麼問題
while (err > 0.0000001) {
if (err != 1.0) {
bab = ((2.0*bab) + input/(pow(bab, 2)))/3.0;
printf("The approximate cube root is %.3lf\n", bab);
err = input - bab;
}
else {
bab = ((2.0*app) + input/(pow(app, 2)))/3.0;
printf("The approximate cube root is %.3lf\n", bab);
err = input - bab;
}
}
任何幫助表示讚賞。
你期望什麼輸入值或值會導致循環退出? – 2013-05-03 00:57:06
'if(err!= 1.0)' - 從不測試與浮點數的相等性。 – 2013-05-03 00:57:08
閱讀關於浮點數的內容,以補充@JonathonReinhart正在談論的內容:http://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html – 2013-05-03 00:58:26