最接近的分数.c

来自「给出一个非负小数」· C语言 代码 · 共 28 行

C
28
字号
#include<stdio.h>
main()
{ 
double x,y,i,k=10,w,q;
int a,b,c,d;
scanf("%d%d",&a,&b);
scanf("%lf",&x);
if(a<=0 || b<=0){printf("无法完成!"); exit(0);} 
y=(double)a/b;
i=y-x;
if(i<0)q=-i;
else q=i;
w=q;
while(a>0 && b>0)
{if(i>0) a--;
 else b--;
 y=(double)a/b;
 i=y-x;
 if(i<0)q=-i;
 else q=i;
 if(q<w){k=w;w=q;c=a;d=b;}
 else if(q<k)k=q;
 }
 if(k==w)printf("TOO MANY!\n");
 printf("%d/%d",c,d);
 getch();
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?