回复 10楼 青春无限
给酱油女跪了!能不能换个词啊,除了“学习”和“看看”+一个表情
个~
程序代码:#include<stdio.h>
int main() \*献丑了,感觉还没达到LZ说的优美。*\
{
double a,b,c,d,i,j;
int n;
scanf("%d",&n);
void xunzhao(double i,double j,int n); \*定义寻找函数*\
printf("please input:\n");
scanf("%lf%lf%lf%lf",&a,&b,&c,&d);
xunzhao((double) a/b,(double) c/d,n);
getchar();
return 0;
}
void xunzhao(double i,double j,int n)
{
double t=1;
double k;
if(n==1)
return;
xunzhao(i,j,n-1); \* 这里开始递归。*\
for(;(k=(double)t/n<j;t++)
if(k>i)
printf("%.2f/%.2f\n",t,n); \*这个循环为了找出满足条件的分数,不过也可以用递归代替*\
}
程序代码:#include <stdio.h>
/* 判断a,b是否包含公共因子 */
int has_factor(int a, int b)
{
int min = a < b ? a : b; int i;
for (i = 2; i <= min; ++i)
if (a % i == 0 && b % i == 0)
return 1;
return 0;
}
/* 判断两个分数的大小 */
int compare(int a, int b, int c, int d)
{
a = a * d;
c = c * b;
return a - c;
}
/* 交换两个数 */
void swap(int* pa, int* pb)
{
int t = *pa;
*pa = *pb;
*pb = t;
}
int main(void)
{
int a, b, c, d, n, i, j;
scanf("a=%d,b=%d,c=%d,d=%d,n=%d", &a, &b, &c, &d, &n);
if (compare(a, b, c, d) > 0)
swap(&a, &c), swap(&b, &d);
for (i = 2; i <= n; ++i)
for (j = 1; j < i; ++j)
if (compare(j, i, a, b) > 0 && compare(j, i, c, d) < 0 && !has_factor(j, i))
printf("%d/%d\n", j, i);
return 0;
}
