我认为这是正确的,但它无法找到素数。我不知道它有什么错误。
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
int i, j, n, a[101];
for (i = 1; i <= 100; i++)
a[i] = i;
a[1] = 0;
for (i = 2; i < sqrt(100); i++);
for (j = i + 1; j <= 100; j++)
{
if (a[i] != 0 && a[j] != 0)
if (a[j] % a[i] == 0)
a[j] = 0;
}
cout << endl;
for (i = 1; i <= 100; i++)
{
if (a[i] != 0)cout << a[i] << " ";
}
cout << endl;
system("pause");
}
它输出从2到99的所有数字,而不是素数
答案 0 :(得分:0)
您的外部for
循环没有正文。
for (i = 2; i < sqrt(100); i++);
摆脱分号。即使循环体只是一个语句,也总是使用curly braces
来标记循环的边界。
答案 1 :(得分:0)
你输入了“for(i = 2; i&lt; sqrt(100); i ++);”并且代码行运行,没有正文。它只循环几次并完成。 因为 ”;”持续。 如果删除字符“;”它运行良好。