【发布时间】:2021-10-15 09:26:52
【问题描述】:
我正在做我老师给我的 C 作业,在带有 GCC 的 ubuntu 环境中使用它。 我们必须从“math.h”头文件中重新创建一种“圆形”,但不使用任何函数或头文件,也不通过检查这个函数的工作。我创建了一个代码,允许我为正值做这件事,它工作得很好。我对负值使用了相同的逻辑,但是当我要求我的 main 返回一个负值时,它总是返回一个“251”,这不是我要求的值。这是我的代码:
my_round.c
int my_round(float n)
{
if (n<0)
{
float res = n-0.5;
return res;
}
else
{
float res = n+0.5;
return res;
}
}
main_round.c
int my_round(float n);
int main(void)
{
return my_round(-5.2);
}
然后我以这种方式使用 gcc:
gcc main_round.c my_round.c -o round.out
然后我执行 ./round.out,当“251”我要求“echo $?”时返回我。 但它确实适用于正值,我测试了所有值(如 1.1;1.2;等......一直到 1.9)。 如果有人愿意帮助我,我真的很感激,谢谢! 水泡
【问题讨论】:
-
在 C 和 C++ 中是一样的。问题不在于语言,而在于操作系统允许的退出值。
-
我认为您对老师的指示过于字面意思了。从程序中返回这个作为退出代码是疯狂的..
-
如果你只把函数提供给你的老师,那你为什么认为老师不会用一个简单打印结果的
main函数来测试呢? -
我同意@interjay“你的功能”很可能不应该是
main。