C++;-控制台中不显示任何内容,不显示任何错误,返回-1 我最近(最近,最近)已经进入C++编程。我正在写一个程序来查找下面的最高质数prime。但是,当我执行代码时,不会显示任何内容,并且在控制台中会显示以下内容: Process returned -1 (0xFFFFFFFF) execution time : 0.409 s Press ENTER to continue.
我尝试了一些调试,我发现有问题的部分是第17-19行(ifC++;-控制台中不显示任何内容,不显示任何错误,返回-1 我最近(最近,最近)已经进入C++编程。我正在写一个程序来查找下面的最高质数prime。但是,当我执行代码时,不会显示任何内容,并且在控制台中会显示以下内容: Process returned -1 (0xFFFFFFFF) execution time : 0.409 s Press ENTER to continue.,c++,debugging,C++,Debugging,我尝试了一些调试,我发现有问题的部分是第17-19行(ifif语句),但我不知道我做错了什么 C++ #include <iostream> #include <cmath> using namespace std; int main() { //cout << "maybe here?"; int prime = 1000; //cout << "here"; while(true){ //cou
if
语句),但我不知道我做错了什么
C++
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
//cout << "maybe here?";
int prime = 1000;
//cout << "here";
while(true){
//cout << "here2";
int testr = ceil(sqrt(prime));
cout << testr;
bool isprime = true;
for(int i = 0; i < testr; i++){
cout << i << " ";
if(testr % i == 0){
isprime = false;
}
}
if(isprime){
break;
}else{
prime--;
}
}
cout << prime;
}
#包括
#包括
使用名称空间std;
int main()
{
//可能有很多问题
1) 您的问题“在素数下查找最低素数”的答案是2,无需编程
2) 假设您想在素数
下面找到最大素数,您应该测试素数-1
以下的所有数字
3) 循环的第一次迭代:
for(int i = 0; i < testr; i++){
cout << i << " ";
if(testr % i == 0){
for(int i=0;i cout原因是您试图在for循环中用0除以0,您应该从2开始。看看这个,我想它是最优的
bool isPrime(int n) {
if(n<2)
return false;
for(int i=2;i*i<=n;i++)
if(n%i==0)
return false;
return true;
}
bool isPrime(int n){
如果(你是怎么想出来的?@SergeyA Basic debugging-注释掉一些东西,直到你找到破坏代码的东西。@michal-这不是一个基本的调试,这叫做trial and error
。基本调试是在调试器下一步一步地运行你的程序,并检查你变量的值。拿一支铅笔检查一下你r程序以1作为输入。看看它的错误行为。@SergeyA我现在看到了。我为犯这样一个简单的错误感到难过。我的不好。我的意思是最高。对不起。这既不是最佳的,也不正确。用2
测试它。它对2返回真,所以它是正确的。你能详细说明你的观点吗?对不起,我忽略了ii