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;我的第二个 if 语句正确吗?最后一个问题,我返回值的语法是否正确?(更具体地说,我可以像在我的代码中那样在最后返回值吗?)
因为出于某种原因,我的输出与我的讲师输出不同,我已经仔细检查了我的公式,它对我来说看起来不错,所以我认为我的代码语法有问题。
谢谢!