c语言编程(30分)

来源:百度知道 编辑:UC知道 时间:2024/05/11 00:56:17
请各位大虾编个小程序,
本程序以求最简分数为主,
要求:
例:1.输入4/8,输出12;
2.输入8/4,输出2;
3.输入1/3,输出1/3.
(注意是c程序)
以上要求是几个例子,说明了三种可能性,我想要的是:输入任何非最简分数,都可以返回最简分数。 分子分母都是正整数。

是否可以肯定分子分母都必然为正整数?

已经编译运行通过:
#include<stdio.h>
#include<conio.h>

int yueshu(int x,int y)
{
int max,min,i,a;
if(x>y)
{
max=x;
min=y;
}
if(x<y)
{
max=y;
min=x;
}
for(i=min;;i--)
{
if(min%i==0&&max%i==0)
{
a=i;break;
}
}
return a;
}

void main()
{
int a[2]={0},flag=0,num;
char ch;

printf("请输入需要处理的分数: \n");
ch=getche();

while(1)
{
if(ch>='0'&&ch<='9')
{
if(flag==0) a[0]=a[0]*10+(ch-'0');
else a[1]=a[1]*10+(ch-'0');
}
else if(ch=='/') flag=1;
else if(ch=13) break;

ch=getche();
}

num=yueshu(a[0],a[1]);

if(a[1]/num!=1)
printf("\n最简分数为: %d/%d\n",a[0]/num,a[1]/num);
else
printf