[英]C programming comparing floats
我的代码中的错误在哪里,超级简单,但比较未输出正确的值。 下面的此函数在其自己的文件中,名为:FloatingPointRepresentationsFunctions.c
int FloatCompare(float number1,float number2){
// Write the function to compare and return the corresponding value
if(number1 < number2){
return -1;
}else if(number2 < number1){
return 1;
}else{
return 0;
}
}
如果浮点2大于浮点1,则函数应返回-1;如果浮点1大于浮点2,则函数应返回1。如果浮点值相等,则函数应返回0。
我的Eclipse控制台输出(mingW):
number1: 12.000000
number2: 11.000000
Comp: -1
11.000000 is greater than 12.000000
这是我的主要c文件:
#include <stdio.h>
int main()
{
float number1 = 0;
float number2 = 0;
int comparison;
number1=12;
number2=11;
printf("number1: %f \nnumber2: %f \n", number1, number2);
comparison=FloatCompare(number1,number2); // Compare two floating point numbers
printf("Comp: %d\n", comparison);
if(comparison==1){
printf("%f is greater than %f\n",number1,number2);
}else if(comparison==-1){
printf("%f is greater than %f\n",number2,number1);
}else if(comparison==0){
printf("Number are equal\n");
}else{
printf("Error\n");
}
return 0;
}
您的主文件没有适合FloatCompare
原型。 这意味着它假定了int FloatCompare()
的默认函数定义,这将导致该函数被错误地调用和未定义的行为 。
您需要在主源文件中添加一个声明,以便它知道如何正确调用该函数。
#include <stdio.h>
int FloatCompare(float number1,float number2);
int main()
{
...
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.