分数比较

题目内容:

本题要求编写程序,比较两个分数的大小。


输入格式:

输入在一行中按照“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);
	} 
}

猜你喜欢

转载自blog.csdn.net/zhanshen112/article/details/80791985
今日推荐