一个超出本人理解范围的问题~
一个简单的作业题,但在tc下运行时没有结果,不知道怎么回事?或者是程序错了,请高手指点一下,谢谢~
#include<math.h>
main()
{int m,n;
float r;
int swap(int x);
for(m=99;m<=2;m--)
{if(swap(m)==0)
for(n=2;n<m;n++)
{if(swap(n)==0)
r=(float)n/(float)m;
if(r>1/6&&r<1/5)
printf("%.4f",r);
}
}
}
int swap(int x)
{int y,z,i;
y=sqrt(x);
for(i=2;i<=y;i++)
if(x%i==0) break;
if(i>y) z=0;
else z=1;
return z;
}
搜索更多相关的解决方案:
范围
----------------解决方案--------------------------------------------------------
for(m=99;m<=2;m--)
这句就错了,循环永远不循环,请说明你这个程序的目的
----------------解决方案--------------------------------------------------------
for(i=2;i<=y;i++) 循环过后 一定有 i<=y;
if(i>y) 显然不能足这个条件 只能执行 else z=1; 返回结果非零
if(swap(m)==0) 不成立 那么下面的都不执行了
当然不能输出结果了
----------------解决方案--------------------------------------------------------
哦 看错了 楼住的程序好像是找出两个商在1/6和1/5之间素数吧
----------------解决方案--------------------------------------------------------