读书人

兄弟们.来帮一下吧.解决方法

发布时间: 2012-03-03 15:33:03 作者: rapoo

兄弟们.来帮一下吧.
请看下面的,为什么达不到目的啊?!!!
BREAK 到底要跳出几层循环啊
#include <iostream>
#include <iomanip>
#include <fstream>
#include <strstream>
#include <string>
#include <cstring>
#include <cmath>

using namespace std;

int main()
{ //求1到100之间的素数
int i=0,j=0;
for(i=2;i <100;i++)
{for(j=2;j <i;j++)
if(i%j==0) break;

if(j==i-1)

cout < <i;
}
cout < < '\n ' < < '\n ' < <endl;
cin.get();
return 0;
}?应该怎么解决呢?

[解决办法]
int i=0,j=0,k;
for(i=2,k=1;i <100;i++)
{
for(j=2;j <i;j++)
{
if(i%j==0)
{
k=0;
break;
}
}

if(k==1)
{
cout < <i < < ' ';
}

k=1;

}
[解决办法]
将 if(j==i-1)
改为 if(j==i)
[解决办法]
for(j=2;j <i;j++)
if(i%j==0) break;

出循环的时候是j==i
所以 if(j==i-1) 是不对的

判断条件应该是 j == i

读书人网 >C++

热点推荐