题目内容:
本题要求编写程序,比较两个分数的大小。
输入格式:
输入在一行中按照“a1/b1 a2/b2”的格式给出两个分数形式的有理数,其中分子和分母全是int类型范围内的正整数。
输出格式:
在一行中按照“a1/b1 关系符 a2/b2”的格式输出两个有理数的关系。其中“>”表示“大于”,“<”表示“小于”,“=”表示“等于”。
注意在关系符前后各有一个空格。
输入样例:
1/2 3/4
输出样例:
1/2 < 3/4
时间限制:500ms内存限制:32000kb
#include <stdio.h> struct Rational { int n; /* 分子 */ int d; /* 分母 */ }; int main(void) { struct Rational r1, r2; int flag; char ch; scanf("%d/%d %d/%d", &r1.n, &r1.d, &r2.n, &r2.d); flag = r1.n * r2.d - r1.d * r2.n; if(flag < 0) ch = '<'; else if(flag > 0) ch = '>'; else ch = '='; printf("%d/%d %c %d/%d\n", r1.n, r1.d, ch, r2.n, r2.d); return 0; }下面是简单的方法,没有用到结构体。
#include <stdio.h> main(){ int a,b,c,d; scanf("%d/%d %d/%d",&a,&b,&c,&d); if(b==0||d==0) { printf("分母为0,分式没有意义!"); } else if(a*d-b*c>0) printf("%d/%d > %d/%d",a,b,c,d); else if(a*d-b*c==0) printf("%d/%d = %d/%d",a,b,c,d); else if(a*d-b*c<0) printf("%d/%d < %d/%d",a,b,c,d); }
#include <stdio.h> typedef struct fenshi{ int x; int y; }fenshi; main(){ fenshi a,b; scanf("%d/%d %d/%d",&a.x,&a.y,&b.x,&b.y); if(a.y==0||b.y==0) { printf("分母为0,分式没有意义!"); } else{ int t; t=a.x*b.y-a.y*b.x; if(t>0) printf("%d/%d > %d/%d",a.x,a.y,b.x,b.y); if(t==0) printf("%d/%d = %d/%d",a.x,a.y,b.x,b.y); if(t<0) printf("%d/%d < %d/%d",a.x,a.y,b.x,b.y); } }