【发布时间】:2019-01-10 16:32:26
【问题描述】:
printf 正在删除我的数字的小数位。在我的情况下,6.9 和 6.4 都打印为 6.0。
#include <stdio.h>
#include <stdlib.h>
int main()
{
double Value1_m, Value2_m;
double maximum, minimum;
printf("Enter two decimal numbers with an space: ");
scanf("%lf" "%lf", &Value1_m ,&Value2_m);
//printf("%3lf", Value1_m);
maximum = ComputeMaximum(Value1_m, Value2_m);
minimum = ComputeMinimum(Value1_m, Value2_m);
printf("ComputeMaximum %.10lf\n", maximum);
printf("ComputeMinimum %.10lf", minimum);
return 0;
}
ComputeMaximum(double Value1, double Value2)
{
return (Value1 > Value2) ? Value1 : Value2;
}
ComputeMinimum(double Value1, double Value2)
{
return (Value1 > Value2) ? Value2 : Value1;
}
【问题讨论】:
-
您的函数隐式返回
int。显式返回double,并在使用函数之前打开编译器警告并声明或定义函数。在整个千年中,遵循当前标准的 C 编译器无法接受您编写的代码。 -
ComputeMaximum(double Value1, double Value2)-->double ComputeMaximum(double Value1, double Value2),同样,在你的函数中使用原型或者在main之前包含它们 -
Implicit int 在当时似乎是个好主意。如果必须,请责怪 BCPL 背后的 Cantabrigian。但幸运的是,它在 1999 年从 C 标准中删除。
-
感谢您的帮助,实施后按预期工作。
-
制作头文件和声明。你的生活会更好。