程序在输出后崩溃
Program crashes after output
我正在尝试运行程序,有时我在尝试编译时遇到此错误
LD 返回 1 个退出状态
虽然,当它编译(就像我说的,并非总是如此)并尝试输入某些输入时,程序会输出答案......然后崩溃。有什么办法可以吗?
这是我的代码:
#include <iostream>
#include <vector>
#include <cmath>
#include <algorithm>
using namespace std;
int main() {
bool flag;
int n,x[] = {1,-1};
long long int A,cont,mul,acum;
while(cin >> n >> A) {
acum = 0;
vector<long long int> nums(n),nums2;
for(int i=0;i<n;i++) cin >> nums[i];
sort(nums.begin(),nums.end());
for(int i=n-1;i>=0;i--) {
flag = 1;
for(int j=0;j<i and flag;j++) if(nums[i]%nums[j] == 0) flag = 0;
if(flag) nums2.push_back(nums[i]);
}
n = nums2.size();
vector<long long int> mult(n,0);
const long long int num = (1<<n);
for(int i=0;i<num;i++) {
cont = 0, mul = 1;
for(int j=n-1;j>=0;j--) if(i & (1<<j)) cont++, mul *= nums2[j];
mult[cont-1] += A/mul;
}
for(int i=0;i<n;i++) acum += (x[i%2]*mult[i]);
cout << acum << endl;
}
return 0;
}
这是我在程序崩溃时输入的输入:
17 1000
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
如果在调试器中运行程序,您将看到问题发生在
mult[cont-1] += A/mul;
当 cont 为 0 时,这意味着您正在尝试修改向量的元素 -1。
我无法判断算法试图做什么,所以我无法判断为什么 cont 最终会为零。
总体建议:学习使用调试器。这是你的朋友。:)
相关文章:
- 在C++中实现二叉搜索树,搜索不起作用.尝试打印节点的元素会导致输出崩溃
- 为什么输出错误崩溃
- 程序崩溃,不显示正确的输出
- 为什么在Shell输出中运行的可执行操作到stdout,而不是崩溃时的stderr
- 当程序与符号名称一起崩溃时,输出呼叫堆栈
- ofstream在极其简单的程序(GCC/Code::Blocks)中首次输出时崩溃
- 我的C++程序在尝试输出从文件中读取的数据时崩溃
- 尝试拆分循环链表.显示输出但崩溃.在 IDEone 中显示运行时错误
- 提出/输出文件,调用案例1之后的程序崩溃
- 简单程序没有输出和崩溃.我的解决方案有什么问题
- SDL_ttf和OpenGL正在输出看似随机的垃圾和崩溃
- 输出正确,但每次打印输出后程序崩溃
- 程序在输出后崩溃
- OpenCV Traincascade.exe在没有输出的情况下崩溃
- 文件输出c++时程序崩溃
- 控制台在输出指针数组和C++迭代时崩溃
- 链表输出崩溃
- 创建动态循环队列,元素输出正常,但程序崩溃
- Eclipse,如果程序崩溃,则看不到输出
- 当UDF调用基于另一个UDF的输出时,Excel在用户定义的DLL上崩溃