请问这个程序为什么在输出的素数前会输出别的数字(每行输出0 11之类的)
`#include
using namespace std;
bool isPrime(int x)
{
if (x <= 1)
return 0;
for (int i = 2;i * i <= x;++i)
if (x % i == 0)
return 0;
return 1;
}
int main()
{
int sum = 0;
int m, n;
cin >> m >> n;
for (int j = m;j <= n;j++)
{
if (1 == isPrime(j))
{
cout << j << endl;
sum++;
}
cout << sum;
}
return 0;
}
```c++
输出的是你的sum 值吧 ,把输出sum放for循环外边,不然每次都会输出
cout << sum;
这代码不是你自己写的吗
输出那肯定不是调用printf就是调用cout了呗,随便一搜不就知道了
已解决,我那个cout位置错了
cout<<sum要放到for循环结束以后
sum初始值为0,那么,isPrime的返回值为0时,sum没有进行++的计算。sum的值就是0,
这时,cout << sum; 的输出就是0。