gpt4 book ai didi

c - 我的 if 语句写得正确吗?

转载 作者:太空宇宙 更新时间:2023-11-04 00:50:45 27 4
gpt4 key购买 nike

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 语句是否正确?最后一个问题,我返回值的语法是否正确? (更具体地说,我可以像在我的代码中那样在最后返回值吗?)

由于某种原因,我的输出与我的讲师输出不同,我已经仔细检查了我的公式,它看起来很好,所以我认为我的代码语法有问题。

谢谢!

最佳答案

Whether or not x and y were on the interval [1, 20]

是的,正确的。

And if x and y aren't on that interval, I return a -1; is my second if statement correct?

但是你不需要第二个if,用第一个if加上else:

   if (((x >= 1) && (x <= 20)) && ((y >= 1) && (y <= 20))) {
// both x, and y are in range [1, 20]
}
else{
soilQual = -1.0;
}

And last question, is my syntax for returning the value correct?

是的,正确的

Because for some reason, my outputs are different than my instructor outputs, I've already double checked my formula and it looks fine to me so I was thinking something was wrong in the syntax of my code.

如果存在语法错误,则代码无法编译!

因为您正在处理读取的数字,请阅读: What Every Computer Scientist Should Know About Floating-Point Arithmetic

关于c - 我的 if 语句写得正确吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19442069/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com