下面的代码可以编译:
document.ready
但是,当输入#include <stdio.h>
double add(double summand1, double summand2)
{
double sum;
sum = summand1+summand2;
return sum;
}
double subtract(double minuend, double subtrahend)
{
double diff;
diff = minuend-subtrahend;
return diff;
}
int main()
{
double a,b,c,d;
printf("Enter Operand 1:\n");
scanf("%d",&a);
printf("Enter Operand 2:\n");
scanf("%d",&b);
// Add
c = add(a,b);
// Subtract
d = subtract(a,b);
printf("Sum: %.3f\n", c);
printf("Difference: %.3f\n", d);
return 0;
}
和5
时,结果为5
(错误)和0.000
(预期)。
输入十进制数字(例如0.000
)时,将完全跳过第二个提示,并为2.5
和sum
打印两个随机数。
问题一定出在double和float数据类型上,我似乎使用不正确。
答案 0 :(得分:5)
在您的scanf()
中,您使用了用于整数的格式说明符%d
。在将整个变量声明为双精度变量时,请改用%lf
(浮点数)。我尝试了该代码,并使用正确的说明符,该代码有效。