回复 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; }