作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试编写一个程序来查找特定区间内的素数,然后将它们存储在一个 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/
我是一名优秀的程序员,十分优秀!