C++中三个浮点数比较大小

请给出详细的解答过程写出三个数的大小顺序

#include <iostream>
#include "math.h"
using namespace std;//由于浮点数存在精度问题,不能直接比较
int FloatCompare( double fA, double fB )
{
const double fEpsilon = 0.000001;
double fDelta = fabs( fA - fB );

if( fDelta > fEpsilon ) return 1; //大于,返回1
else if( fDelta < fEpsilon ) return -1; //小于,返回-1
return 0; //等于,返回0
} void main(void)
{
int i,j;
double f[3]; //待比较浮点数
double temp;//由大到小进行排序
for ((i = 0; i < 3; i++)
for ((j = 0; j < 3; j++)
if(-1 == FloatCompare(f[i], f[j])) //小于,则互换
{
temp = f[i];
f[i] = f[j];
f[j] = temp
}//输出
for (i = 0; i < 5; i++) printf("%f ", f[i]);
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-12-15
/* Note:Your choice is C IDE */
#include "stdio.h"
void main()
{
float a,b,c,t;
printf("请输入三个浮点数:");
scanf("%f %f %f",&a,&b,&c);
if(b>a)
{
t=a;
a=b;
b=t;
}
if(c>a)
{
t=a;
a=c;
c=t;
}
if(c>b)
{
t=b;
b=c;
c=t;
}
printf("大小顺序为:");
printf("%f,%f,%f\n",a,b,c);

}
第2个回答  2013-12-15
#include"iostream"
#include "math.h"
using namespace std;int main()
{

float a=1.2,b=2.1,c=0.8;
float Max=max(a,max(b,c));
float Min=min(a,min(b,c));
cout<<Min<<" "<<a+b+c-Max-Min<<" "<<Max<<endl;
system("pause");
return 0;
}
很偷懒的办法
相似回答