小白想问问runtime error应该怎么解决?问题:多个分数求和,编译器可以但为什么oj不行?

​



​#include <stdio.h>  
#include <math.h>
int gys(int x,int y){
    int a;
    if(x<y){    
        a=x;
        x=y;
        y=a;
    }
    while(x%y!=0){     
        a=x%y; 
        x=y;                    
        y=a;                                       
    }
    return y;                 
}
int gbs(int x,int y){
    int result=(x*y)/(gys(x,y));
    return result;
}    
int main(){
int n; 
while(scanf("%d",&n)!=EOF){
	int a[n],b[n];
	for(int j=0;j<n;j++){
		scanf("%d/%d",&a[j],&b[j]);
	}
	int lcm=b[0],gcd;
	for(int j=1;j<n;j++){
	lcm=gbs(lcm,b[j]);
	}
	int fm,fz=0,zs,xlcm;
	for(int j=0;j<n;j++){
	fz+=lcm/b[j]*a[j];
	}
    gcd=gys(fz,lcm);
	fz=fz/gcd;
	fm=lcm/gcd;
	zs=fz/fm;
	fz=fz%fm;
	if(fz==0)printf("%d\n",zs); 
	else if(zs==0) printf("%d/%d\n",fz,fm);
	else printf("%d %d/%d\n",zs,fz,fm);
}
return 0;
}

 

oj 的测试用例比你自己输入的多,你的程序有BUG,可以结合 oj 的出错信息调试。