不用能除法我怎么办,我想到的只有分子分母乘,他说不能求,要通分,我怎么办
#include <iostream>
using namespace std;
int main()
{
int a, b, c, d,sum;
cout << "请你输入a除b分别是" << endl;
cin >> a >> b;
cout << "请你输入c除d分别是" << endl;
cin >> c >> d;
sum = b * d;
if (sum * a / b > sum * c / d)
{
cout << a << "/" << b << " >" << c << " /" << d;
}
else if (sum * a / b == sum * c / d)
{
cout << a<<"/"<< b<<" ="<< c<<" /"<< d;
}
else
{
cout << a << "/" << b << " <" << c << " /" << d;
}
return 0;
}
我想到的只有分子分母乘
就是交叉进行分子分母相乘,然后比较大小,分子参与相乘的,改值即作为其所在分数的结果,那个更大,则分子所在的结果代表的分数更大
比如4/5 和 6/7,比较47和56的大小,由于5*6更大,且6是分子,所以6/7更大
如果你想比较a/b和c/d的大小
那么两个数同时乘以bd
变成a*d和c*b比较大小不就得了
#include <stdio.h>
#include <iostream>
using namespace std;
int main(){
int num1,num2,den1,den2;
scanf( "%d/%d %d/%d", &num1,&den1,&num2,&den2);
if (num1*den2 > num2*den1)
{
printf ("%d/%d>%d/%d\n",num1,den1,num2,den2);
}
if (num1*den2 == num2*den1)
{
printf ("%d/%d=%d/%d\n",num1,den1,num2,den2);
}
else {
printf ("%d/%d<%d/%d\n",num1,den1,num2,den2);
}
system("pause");
return 0;
}
哪有那么复杂。。。
题目:a/b 和 c/d 的大小比较
这个是数学原理,对角乘就完事了。。。。。。。
仅供参考!谢谢!
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int compare(char *s1, char *s2)
{
char *p1 = NULL;
char *p2 = NULL;
struct
{
char c1[15];
char c2[15];
int a;
int b;
} a, b;
p1 = strchr(s1, '/');
p2 = strchr(s2, '/');
if (!p1 || !p2)
{
puts("不都是分数,自行比较!");
return -2;
}
strncpy(a.c1, s1, p1 - s1);
strcpy(a.c2, p1 + 1);
a.a = atoi(a.c1);
a.b = atoi(a.c2);
strncpy(b.c1, s2, p2 - s2);
strcpy(b.c2, p2 + 1);
b.a = atoi(b.c1);
b.b = atoi(b.c2);
if (a.b == 0 || b.b == 0)
{
puts("分母为0无效!");
return -3;
}
a.a *= b.b;
b.a *= a.b;
return a.a > b.a ? 1 : (a.a == b.a ? 0 : -1);
}
int main()
{
int n = -8;
char s1[15];
char s2[15];
puts("输入两个分数:");
scanf("%15s", s1);
scanf("%15s", s2);
n = compare(s1, s2);
if (n == 0)
printf("%s = %s\n", s1, s2);
else if (n == 1)
printf("%s > %s\n", s1, s2);
else if (n == -1)
printf("%s < %s\n", s1, s2);
else
printf("输入无效!\n");
return 0;
}