作者在 2007-10-08 06:52:00 发布以下内容
比较两个分数的大小。
*问题分析与算法设计
人工方式下比较分数大小最常用的方法是:进行分数的通分后比较分子的大小。可以编程模拟手式方式。
*程序说明与注释
#include<stdio.h>
int zxgb(int a,int b);
int main()
{
int i,j,k,l,m,n;
printf("Input two FENSHU:\n");
scanf("%d/%d,%d/%d",&i,&j,&k,&l); /*输入两个分数*/
m=zxgb(j,l)/j*i; /*求出第一个分数通分后的分子*/
n=zxgb(j,l)/l*k; /*求出第二个分数通分后的分子*/
if(m>n) printf("%d/%d>%d/%d\n",i,j,k,l); /*比较分子的大小*/
else if(m==n) printf("%d/%d=%d/%d\n",i,j,k,l); /*输出比较的结果*/
else printf("%d/%d<%d/%d\n",i,j,k,l);
}
int zxgb(int a,int b)
{
long int c;
int d;
if(a<b) c=a,a=b,b=c; /*若a<b,则交换两变量的值*/
for(c=a*b;b!=0;)
{
d=b; b=a%b; a=d;
}
return (int)c/a;
}
*运行结果
输入: 4/5,6/7 输出: 4/5<6/7
输入: 8/4,16/32 输出: 8/4>16/32
输入:16/32,4/8 输出: 16/32=4/8