| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
怎么总是编译错误?#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int gcd(int a,int b)//求最大公约数
{
int t;
if(a<b)
{
t=a;
a=b;
b=t;
}
if(a%b==0)return b;
else
return gcd(b,a%b);
}
int min(int a,int b)//求最小公倍数
{
return a*(b/gcd(a,b));
}
void bb(char * str,int *n,int *m)
{
int a,b,c,d,e;
char ch;
ch=str[3];
a=str[0]-'0';
b=str[2]-'0';
c=str[4]-'0';
d=str[6]-'0';
e=min(b,d);
a=a*(e/b);
c=c*(e/d);
*m=e;
if(ch=='+') *n=a+c;
if(ch=='-') *n=a-c;
return ;
}
void out(int a,int b)
{
int c;
if(a==0){printf("%d\n",0);return ;}
c=gcd(a,b);
if(c<0)c=-c;
a=a/c;
b=b/c;
if(a==b){printf("%d\n",1);return ;}
if(b==1){printf("%d\n",a);return ;}
printf("%d/%d\n",a,b);
return ;
}
int main(void)
{
char str[20][10]={'\0'};
int a[20]={0},b[20]={0},i=0,n;
while(scanf("%s",str[i])!=EOF)
{
bb(str[i],&a[i],&b[i]);
i++;
}
n=i;
for(i=0;i<n;i++)
out(a[i],b[i]);
return 1;
}
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator