gpt4 book ai didi

在C函数中将int转换为float

转载 作者:行者123 更新时间:2023-12-04 07:30:24 25 4
gpt4 key购买 nike

所以我有一些源代码需要修改以包含第三个数学公式。
源代码是:

#include <stdio.h>

int sum_and_diff (int a, int b, int *res)
{
int sum;
sum = a + b;
*res = a – b;
return sum;
}
int main (void)
{
int b = 2;
int diff;
printf ("The sum of 5 and %d is %d\n", b,
sum_and_diff (5, b, &diff));
printf ("The difference of 5 and %d is %d\n", b, diff);
}
它需要通过添加除法函数进行修改,并且所有通过它的参数都应转换为浮点数。
这就是我迄今为止所做的,对于我的生活来说,这是行不通的。
#include <stdio.h>

int sum_and_diff (int a, int b, int *res)
{
int sum;
sum = a + b;
*res = a – b;
return sum;
}

float div (float a, float b)
{
float div;
div = a / b;
return div;
}

void main (void)
{
float a = 5.0;
int b = 2;
int diff;
float div;

printf ("The sum of 5 and %d is %d\n", b,
sum_and_diff (5, b, &diff));
printf ("The difference of 5 and %d is %d\n", b, diff);
printf ("The quotient of %.0f and %d is %f\n", a, b, div);
}
有人可以帮我纠正这个问题吗,我已经在这工作了几个小时,几乎所有在线资源都说你不能在 C 中将 int 转换为浮点数。
相反,它编译得很好,但第三次打印给了我 -nan 的结果。

最佳答案

float div;
// ...
printf ("The quotient of %.0f and %d is %f\n", a, b, div);
您声明了一个名为 div 的局部变量它与名为 div 的函数没有联系(但 shadows 它)。然后打印出这个变量的值,它从未被初始化,因此包含垃圾,导致不正确的输出或其他未定义的行为。
您应该删除声明 float div;而是调用函数:
printf ("The quotient of %.0f and %d is %f\n", a, b, div(a,b));
试试看: https://onlinegdb.com/cw12CCTUH

关于在C函数中将int转换为float,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67962778/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com