本题要求编写程序,比较两个有理数的大小。
输入格式:
输入在一行中按照“a1/b1 a2/b2”的格式给出两个分数形式的有理数,其中分子和分母全是整形范围内的正整数。
输出格式:
在一行中按照“a1/b1 关系符 a2/b2”的格式输出两个有理数的关系。其中“>”表示“大于”,“<”表示“小于”,“=”表示“等于”。
输入样例1:
1/2 3/4
输出样例1:
1/2 < 3/4
输入样例2:
6/8 3/4
输出样例2:
6/8 = 3/4
解析:
一开始我没想到使用结构体,而是使用简单的思路编程,屡遭碰壁,屈服,然后去网上搜了很多答案,发现结构体是最不容易出错的相对于这道题。
还有个很重要的点就是double x,y一定在计算的时候分子×0.1
这样才能确保出来的是double类型 而不是按照整数类型计算
代码:
#include<stdio.h>
struct stu{
int a1;
int b1;
int a2;
int b2;
}stu;
int main()
{
int a1,a2,b1,b2;
scanf("%d/%d %d/%d",&stu.a1,&stu.b1,&stu.a2,&stu.b2);
double x,y;
x=(stu.a1*1.0)/stu.b1;
y=(stu.a2*1.0)/stu.b2;
if(x<y)
{
printf("%d/%d < %d/%d",stu.a1,stu.b1,stu.a2,stu.b2);
}
if(x==y)
{
printf("%d/%d = %d/%d",stu.a1,stu.b1,stu.a2,stu.b2);
}
if(x>y)
{
printf("%d/%d > %d/%d",stu.a1,stu.b1,stu.a2,stu.b2);
}
return 0;
}