求分母为40的所有最简真分数
for循环中调用了求最大公约数的函数,但是运行结果错误,在调用前加了句printf(" "); 就会出现正确结果,不知是什么原因?程序代码:
/*40以内的真分数*/ #include<stdio.h> int maxcom(int m,int n); int main() { int k=40,i,s=0,count=0; for(i=1;i<40;i=i+2) { printf(" "); /*若去掉这行则运行结果错误*/ if(maxcom(k,i)==1) /*最大公约数为1,是最简分数*/ { printf("%d/40 ",i); } } } /*辗转相除法求最大公约数*/ int maxcom(int m,int n) { int mod; for(;mod!=0;) { mod=m%n; m=n; n=mod; } return(m); }