C 函数将两个分数相加,并只输出0的小数
我正在尝试制作一个简单的程序,它将两个分数相加。它采用四个数字作为输入: 第一个分数的分子和分母,第二个分数的分子和分母。输出应为十进制形式的两个分数之和。我的程序坏了,我一直在想如何修复它。对于尝试运行该函数的所有示例,它输出0.000C 函数将两个分数相加,并只输出0的小数,c,type-conversion,function-definition,C,Type Conversion,Function Definition,我正在尝试制作一个简单的程序,它将两个分数相加。它采用四个数字作为输入: 第一个分数的分子和分母,第二个分数的分子和分母。输出应为十进制形式的两个分数之和。我的程序坏了,我一直在想如何修复它。对于尝试运行该函数的所有示例,它输出0.000 # include <stdio.h> int fracsum(float n1, float d1, float n2, float d2) { float n3, d3; double res; n3 = (n1*d2
# 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 %.3f\n",
fracsum(1,2,2,4),
fracsum(1,4,1,8),
fracsum(4,3,5,6));
return 0;
}
#包括
整数分形和(浮点n1、浮点d1、浮点n2、浮点d2)
{
浮球n3、d3;
双res;
n3=(n1*d2)+(d1*n2);
d3=d1*d2;
res=n3/d3;
返回res;
}
内部主(空)
{
printf(“%.3f%.3f%.3f\n”,
分形和(1,2,2,4),
分形和(1,4,1,8),
fracsum(4,3,5,6));
返回0;
}
此代码的输出为:0.000 0.000 0.000
int fracsum
但你显然想要
double fracsum
通过printf调用定义了
int fracsum()
!请启用并处理编译器警告。谢谢!正如你们所看到的,我对C相当陌生。@DougRichmond:所以我们C。