我在函數中遇到了一些麻煩,當我回顧我的代碼時,我記得我不太確定我是否正確地翻譯了這個數學公式。這是將此數學公式轉換爲c函數的正確方法嗎?
注意:如果參數x和y不在區間[1,20]中,則該函數應返回-1。
這是我該函數代碼:
double irrigationExposure(int x, int y) {
double denominator, fraction, waterexp, wexp;
if (x >= 1 && x <= 20 && y >= 1 && y <= 20) {
denominator = (1 + (abs(x - y)))* (1.0);
fraction = ((IRRIEXPONUM)/(denominator));
waterexp = (fraction) + (2);
if (waterexp <= 10) {
wexp = waterexp;
}
else {
wexp = 2.0;
}
}
else {
wexp = -1.0;
}
return wexp;
}
許多事情有點奇怪(例如,爲什麼在分母中乘以1?爲什麼這麼多括號?)但是一個特殊問題 - IRRIEXPONUM從哪裏來? – Steve314
IRRIEXPONUM將是我在此之前聲明的一個常量,因此在這種情況下它將爲10。我在分母中乘以1,因爲整數除以整數將給我一個整數值BUT,如果你看看函數聲明,我想要一個double作爲返回值。所以這就是爲什麼我在分母中乘以1.0,使它變成雙重值的原因。 – Karen
是的,我在評論之前就明白了,但那不是重點。如果我看不到它,我不知道你的代碼是否正確,僅僅因爲你乘以1.0的原因並不意味着你以一種清晰可讀的方式實現了你的目標。乘以一表明你打算乘以1,而演員表明你打算演員。 – Steve314