C语言 两个分数相加的函数,只输出0的小数



我正在尝试制作一个简单的程序,将两个分数相加。它接受四个数字作为输入:第一个分数的分子和分母第二个分数的分子和分母。输出结果应该是两个分数的小数形式的和。我的程序不工作了,我被如何修复它所困扰。对于尝试运行该函数的所有示例,它都会输出0.000。

# include <stdio.h>
int fracsum(float n1, float d1, float n2, float d2)
{
float n3, d3;
double res;
n3 = (n1*d2) + (d1*n2);
d3 = d1 * d2;
res = n3 / d3;
return res;
}
int main(void)
{
printf("%.3f %.3f %.3fn",
fracsum(1,2,2,4),
fracsum(1,4,1,8),
fracsum(4,3,5,6));
return 0;
}

这段代码的输出是:0.000 0.000 0.000

int fracsum

但你显然想要

double fracsum

从你的printf调用

最新更新