求分母为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);
}






