C语言入门问题
#include<stdio.h>int g,h,z;//全局变量
void main()
{
void fun1(int,int); //声明
void fun2(int,int,int,int,char);//声明
int a,b,c,d,g1,h1;
char e;
printf("请输入两个有理数的分子分母和运算符,例如:表达式为2/3+7/8,请输入2,3,7,8,+\n");
scanf("%d,%d,%d,%d,%c",&a,&b,&c,&d,&e);
fun2(a,b,c,d,e);//根据运算符计算分子分母的值
g1=g;
h1=h;//因为辗转相除法会改变分子分母的值,所以用h1,g1保存
fun1(g,h);//辗转相除法求最大公约数z
printf("分子为:%d,分母为:%d",g1/z,h1/z);
}
void fun1(int a,int b)
{
int r,t;
if(b>a)
{
t=a;
a=b;
b=t;
}
while(r!=0)
{r=a%b;
a=b;
b=r;
}
z=b;
}
void fun2( int a,int b,int c,int d,char e)
{
if(e=='+')
{
g=a*d+b*c;
h=b*d;
}
else if(e=='-')
{
g=a*d-b*c;
h=b*d;
}
else if(e=='*')
{
g=a*c;
h=b*d;
}
else if(e=='/')
{
g=a*d;
h=b*c;
}
else
printf("您输入的运算附有误,请重新运行程序");
}
设计实现抽象数据类型“有理数”,其基本操作包括有理数的加法、减法、乘法和除法。以及求有理数的分子、分母。
帮我看下怎么没有结果????