【发布时间】:2023-01-10 10:36:39
【问题描述】:
我是一个完全的新手,所以请原谅。 我尝试使用在线编译器,但它们没有响应,而且我没有得到任何返回值(或者无论我输入什么都返回 0)
我试着写了一个函数来检查三角形是否正确,等腰或两者,并分别返回 1,2,3,所有其他情况应返回 0。
int main() {
int TriangleType(unsigned angle1, unsigned angle2) {
unsigned angleSum = angle1 + angle2;
if (angleSum >= 180) {
return 0;
}
/* if triangle is right ---> */
if (angle1==90 || angle2==90 || angleSum==90) {
/*if it is also an isosceles --->*/
if (angle2==45 || angle1==45) {
return 3;
}
return 1;
}
/*check if it only a isosceles*/
if (angle1==(180-angle2)/2 ||
angle2== (180-angle1)/2 ||
angle1==angle2) {
return 2;
}
return 0;
}
TriangleType(110, 111);
}
【问题讨论】:
-
您也不会对
TriangleType的返回值做任何事情。 -
一个聪明的编译器可能会意识到整个事情什么都不做,并完全优化它。
-
@kotatsuyaki:C 标准允许嵌套函数。它没有定义嵌套函数。 C 标准只定义了一种旨在扩展的基础语言,它邀请扩展。 GCC 和 Clang 支持嵌套函数作为扩展,而 C 标准允许这样做。
标签: c