C 想用fabs和我自己的绝对值函数来求绝对值吗
尝试通过使用库和创建自己的代码来学习函数。我创建了自己的绝对值func来进行比较和对比 expected input: -10 expected output: The library absolute value of -10 is 10 My absolute value of -10 is 10 这是不正确的: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
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));