我的代码中的错误在哪里,超级简单,但比较没有输出正确的值。下面的这个函数在它自己的文件中,名为: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。
我的日食控制台输出(明W):
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: %dn", comparison);
if(comparison==1){
printf("%f is greater than %fn",number1,number2);
}else if(comparison==-1){
printf("%f is greater than %fn",number2,number1);
}else if(comparison==0){
printf("Number are equaln");
}else{
printf("Errorn");
}
return 0;
}
您的主文件没有合适的原型用于FloatCompare
。 这意味着它假定默认的函数定义为 int FloatCompare()
,这会导致函数被错误调用和未定义的行为。
您需要将声明添加到主源文件,以便它知道如何正确调用函数。
#include <stdio.h>
int FloatCompare(float number1,float number2);
int main()
{
...
}