有理数比较

【问题描述】编写函数CompareRational(),比较两个有理数的大学,该函数的参数为两个有理数(结构体类型,包含分子分母两个整数),若第一个有理数小于第二个,返回一个负数;若相等,返回0;若第一个有理数大于第二个,则返回正数。以分数的形式输入两个有理数,输出比较结果。

【输入形式】两个有理数,分数形式,格式为:"分子/分母"
【输出形式】输入的两个有理数,中间用比较运算符连接表示其大小关系。有理数格式同上。
【样例输入】

1/2 3/4
【样例输出】

1/2<3/4

方法一用结构体实现

#include 

typedef struct{
	int a;
	char c;
	int b;
}num;

int main()
{
	int i=0;
	double sum1,sum2;	
	
	num st[2];
	for(i=0;i<2;i++)
	{
		scanf("%d",&st[i].a);
		scanf("%c",&st[i].c);
		scanf("%d",&st[i].b);
	}
	
	sum1 = st[0].a*1.0/st[0].b;
	sum2 = st[1].a*1.0/st[1].b; 
	if(sum1>sum2) printf("%d%c%d>%d%c%d",st[0].a,st[0].c,st[0].b,st[1].a,st[1].c,st[1].b);
	else if(sum1

方法二:直接暴力就完事了

#include 

using namespace std;

int main()
{
	int a,b,c,d;
	char r;
	cin >> a >> r >> b >> c >> r >> d;
	
	double sum1,sum2;
	sum1=a*1.0/b;
	sum2=c*1.0/d;
	if(sum1>sum2) printf("%d%c%d>%d%c%d",a,r,b,c,r,d);
	else if(sum1

 

你可能感兴趣的:(c语言学习,算法,数据结构,c语言)