gpt4 book ai didi

C 编程比较 float

转载 作者:行者123 更新时间:2023-12-03 22:58:45 24 4
gpt4 key购买 nike

我的代码中的错误在哪里, super 简单,但比较没有输出正确的值。下面的这个函数位于它自己的文件中,名为: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;
}
}

如果 float 2 大于 float 1,函数应返回 -1;如果 float 1 大于 float 2,函数应返回 1。如果 float 值相等,函数应返回 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 的正确原型(prototype)。这意味着它采用 int FloatCompare() 的默认函数定义,这会导致函数被错误调用,并且 undefined behavior .

您需要向主源文件添加声明,以便它知道如何正确调用该函数。

#include <stdio.h>

int FloatCompare(float number1,float number2);

int main()
{
...
}

关于C 编程比较 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35518603/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com