gpt4 book ai didi

c++ - While 循环导致错误 R6010 Visual C++ Express 2013

转载 作者:行者123 更新时间:2023-11-30 05:42:56 27 4
gpt4 key购买 nike

我正在尝试编写一个程序来查找特定区间内的素数,然后将它们存储在一个 vector 中。

它编译但当它到达循环时我得到错误 R6010(“-abort 已被调用”即)。我正在使用 Visual C++ Express 2013。std_lib_facilities.h 来自 Stroustrups PPP。

 /* User picks a max and min number. A loop tests each value
within the interval as x modulus --x where x decrements per loop*/

#include "stdafx.h"
#include "std_lib_facilities.h"

int _tmain(int argc, _TCHAR* argv[]) {
int x = 0;
int y = 0;
int z = 0;
vector<int>prime;

cout << "Input max number: ";
cin >> x;
z = x;
cout << "Inupt min number: ";
cin >> y;
cout << "You have entered the interval " << x << " to " << y << ".\n";
//Loop for calculating primes
while (x>=y) {
while (x > 0) {
//find primes for z
if (z%x != 0) {
prime.push_back(x);
cout << prime[x] << "\n";
x--;
} else {
x--; //try a new value
}
}
z--;
x=z; //find out if z decremented is a prime
}
return 0;
}

最佳答案

问题是:

cout << prime[x] << "\n";

您正在使用质数 x 作为质数 vector 的索引,它几乎肯定会超过 vector 的末尾。

你应该简单地打印 x,因为它是你刚刚压入的素数,而不是它在素数 vector 中的位置:

cout << x << "\n";

关于c++ - While 循环导致错误 R6010 Visual C++ Express 2013,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30423047/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com