它出现为0.0。我希望它以0以外的数字出现,除非输入数字当然是0。我试了几件事。这是当前的代码。
#include <stdio.h> /* Necessary header */
#include <stdlib.h>
int main()
{
double Initial;
double Post;
printf("Enter a number with a decimal: ");
scanf("%lf", &Initial);
printf("Enter another number using the same format: ");
scanf("%lf", &Post);
ComputeMinimum(Initial, Post);
ComputeMaximum(Initial, Post);
printf("Of %1.1lf and %1.1lf ", Initial, Post);
printf("the minimum is %1.1lf ", ComputeMinimum(Initial, Post));
printf("and the maximum is %1.1lf.", ComputeMaximum(Initial, Post));
return 0;
}
double ComputeMaximum(double B, double A)
{
return (A > B) ? A : B;
}
double ComputeMinimum(double a, double b)
{
return (a < b) ? a : b;
}
我已经尝试过以下内容。另外,我应该将函数的返回类型设为double,但不确定如何。
int main()
{
double Initial;
double Post;
printf("Enter a number with a decimal: ");
scanf("%lf", &Initial);
printf("Enter another number using the same format: ");
scanf("%lf", &Post);
double minimum = ComputeMinimum(Initial, Post);
double maximum = ComputeMaximum(Initial, Post);
printf("Of %1.1lf and %1.1lf ", Initial, Post);
printf("the minimum is %1.1lf ", minimum);
printf("and the maximum is %1.1lf.", maximum);
return 0;
}
答案 0 :(得分:1)
我不知道,它对我来说非常好。
你应该在main之前添加函数声明,所以它得到:
#include <stdio.h> /* Necessary header */
#include <stdlib.h>
double ComputeMinimum(double a, double b);
double ComputeMaximum(double a, double b);
int main()
{
....
至于你的下一个问题,这些函数的返回类型是double
,所以你不必改变任何东西。问题是如果没有函数原型,编译器不会知道它将是double
,因此它假定为int
。
请启用编译器警告,它们非常有用,您应该仔细阅读它们。
答案 1 :(得分:0)
对我来说,它也起作用,即上面的程序,你将输出的最大值和最小值都加倍。我认为上面提到声明原型也是正确的,或者你可以直接把这两个函数的定义放在主程序之上,那么在这种情况下你甚至不需要原型,因为它也可以作为编译器的原型工作