1
double soilQuality(int x, int y) {
double typeA, typeB, soilQual;
if (((x >= 1) && (x <= 20)) && ((y >= 1) && (y <= 20))) {
typeA = 1 + (sqrt((pow(x - SOILQUALACONST, 2)) + (pow(y - SOILQUALACONST, 2)) * (1.0)));
typeB = (1 + ((abs(x - SOILQUALBCONST) + abs(y - SOILQUALBCONST))/(2.0)));
soilQual = (((x + y) % 2) * typeB) + ((1 - ((x + y) % 2)) * typeA);
}
if (((x < 1) || (x >20)) || ((y < 1) || (y > 20))) {
soilQual = -1.0;
}
return soilQual;
只是幾個簡單的問題,如果我創建一個測試是否X和Y是在區間[1,20]變量警衛,將第一if語句是正確的?如果x和y不在該間隔中,則返回-1;我的第二個陳述是否正確?最後一個問題,我的語法是否返回正確的值? (更具體地說,我是否可以像我在代碼中一樣返回最終值?)
由於某種原因,我的輸出與教練輸出不同,我已經對公式進行了雙重檢查,對我來說很好,所以我在想我的代碼的語法有問題。
謝謝!
你可以簡單地代碼'如果(X> = 1 && X <= 20 && y > = 1個&&Ŷ<= 20)',其是相同的,但更可讀。 –
哦!感謝您的建議Basile Starynkevitch! – Karen
第二個'if'子句可以更改爲else,因爲全部完成 – Mine