大侠们,
大侠们,求助啊,好无语啊,直接打击人啊。[解决办法]for循环里应该是m+2吧?[解决办法]#include iostream#i
大侠们,求助啊
,好无语啊,直接打击人啊。
[解决办法]for循环里应该是m+=2吧?
[解决办法]#include "iostream"
#include "math.h"
using namespace std;
int main(void)
{
int m=3;
int i=2;
int k=0;
for(m=3;m<100;m+=2)
{
k=(int)sqrt((double)m);
for(i=2;i<=k;i++)
{
if(m%i==0)
{
break;
}
}
if(i>k)
{
cout<<m<<endl;
}
}
getchar();
getchar();
return 0;
}
[解决办法]同学,你第一层for循环 m+2 没修改m 的值啊。应该改成 m += 2。
其次,你逻辑有些问题。比如内层 当i>k时,内层for循环已经跳出去了,怎么能执行 输出呢。
我帮你改了改,你可以参考一下
#include<stdio.h>
#include<math.h>
void main()
{ int m,i,k;
for(m=1;m<100;m +=2)
{ k=sqrt(m);
for(i=2;i<=k;i++)
{
if(m%i==0) break;
}
if(i > k)
printf("%d\n",m);
}
}
[解决办法]不要粗心啊
[解决办法]一个getchar();就够了
[解决办法]你跟人家一样的啊,人家就是少了对大括号,格式不整齐。。。