C 想用fabs和我自己的绝对值函数来求绝对值吗

C 想用fabs和我自己的绝对值函数来求绝对值吗,c,C,尝试通过使用库和创建自己的代码来学习函数。我创建了自己的绝对值func来进行比较和对比 expected input: -10 expected output: The library absolute value of -10 is 10 My absolute value of -10 is 10 这是不正确的: printf("%d", "Enter a number and I will tell you the absolute value: ", a

尝试通过使用库和创建自己的代码来学习函数。我创建了自己的绝对值func来进行比较和对比

expected input: -10 expected output: The library absolute value of -10 is 10 My absolute value of -10 is 10 这是不正确的:

printf("%d", "Enter a number and I will tell you the absolute value: ", a);
printf
的第一个参数是格式字符串,以下参数是满足该格式字符串的值。您的格式字符串是
“%d”
,这意味着您打算打印
int
,但下一个参数是字符串

由于您只想打印字符串,请将其设置为以下格式:

printf("Enter a number and I will tell you the absolute value: ");
这也是一个问题:

printf("My absolute value of %d is %lf\n", a, absolute(a));

因为
%lf
格式说明符需要一个
双精度
,但
绝对值
返回一个
int
。由于
printf
的变量性质,
int
不会隐式转换为
double
,因此格式字符串参数不匹配。您应该改用
%d

printf("My absolute value of %d is %d\n", a, absolute(a));

发布有关错误的问题时,请将完整的错误输出复制粘贴(作为文本)到问题正文中。并用注释标出错误在代码中的位置。
absolute
返回一个
int
,而不是
double
,因此
%lf
在第三个
printf
中应该是
%d
。为什么在第一个
printf
中有一个
,一个
?注意
a*((2*a+1)%2)
对于较大的
int
值失败。@HenryGibbs很高兴我能提供帮助。如果你觉得它有用的话,请随意使用。
printf("My absolute value of %d is %lf\n", a, absolute(a));
printf("My absolute value of %d is %d\n", a, absolute(a));