求小于一个数的最大偶数的方法
/*求实数范围内的最大2倍数*/
#include"stdio.h"
int f(float x);
void main(void)
{
int y;
float x;
printf("请输入一个数字:");
scanf("%f",&x);
y=f(x);
printf("\n%f的最大2倍数是%d",x,y);
getch();
}
int f(float x)
{
int i;
i=((int)(x)-2)/2;
while(2*i<x) i++;
if(2*i==x) return 2*i;
else return 2*i-2;
}
*********************************************************************
上面是普通方法,下面用#define设计
/*求实数范围内的最大2倍数*/
#include"stdio.h"
#define f(x) (x<0?-2+2*(int)(x/2):2*(int)(x/2))
void main(void)
{
int y;
float x;
printf("请输入一个数字:");
scanf("%f",&x);
y=f(x);
printf("\n%f的最大2倍数是%d",x,y);
getch();
}
|