大一C语言一个程序求解答

程序如下:问输出结果
#include<stdio.h>
#include<math.h>
int main()
{int i,k,m,n=0;
for(m=1;m<=10;m+=2)
{ if(n%10==0)printf("\n");
k=sqrt(m);
for(i=2;i<=k;i++)
if(m%i==0)break;
if(i>k)
{printf("%2d",m);
n++;
}
}
}
最终答案是1 3 5 7
为什么会有1?
k=sqrt(m);
for(i=2;i<=k;i++)
中第二个表达式不是表明1不行?为什么还会输出1?

for(m=1;m<=10;m+=2)
{ if(n%10==0)printf("\n");
k=sqrt(m); // 当m为1时k为1
for(i=2;i<=k;i++)//不满足for循环
if(m%i==0)break;

if(i>k) //此时i为2 k为1 输出m为1
{printf("%2d",m);
n++;
}
}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-12-08
我是学java的 不懂这个是干啥的
相似回答
大家正在搜