C - 无法返回负值

  • 本文关键字:返回 c ubuntu
  • 更新时间 :
  • 英文 :


我正在做老师给我的C作业,在ubuntu环境下使用GCC。我们必须重新创造一种"圆形"。从"数学"开始。头,但不使用任何函数或头,也不检查该函数的工作情况。我创建了一个代码,让我可以对正的值这样做,它工作得很好。我对负值使用了相同的逻辑,但是当我要求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)。如果有人能帮我一把,我真的很感激,谢谢!Bloster

您的问题是关于返回代码返回码在0到255之间无符号

打印值为-5,返回值为251所以你的代码很好,但你测试的方式不好

这段代码显示:

-5
251
#include <stdio.h>
#include <stdlib.h>
static int my_round(float n)
{
if (n<0)
{
float res = n-0.5;
return res;
}
else
{
float res = n+0.5;
return res;
}
}
int main(void)
{
int res = my_round(-5.2);
printf("%dn", res);
printf("%un", ((unsigned int)res)&0Xff);
return res;
}

相关内容

  • 没有找到相关文章

最新更新