我写了一个神秘的程序,它打算打开并阅读这个.txt
`> krol.txt
3 7
3 13
2 4
3 1
然后将其保存到vector,使用某些算法执行一些疯狂的操作,将其保存到另一个矢量并将其传输到文件中。但疯狂的事情是在运行.exe之后。它没有显示任何东西,没有任何反应。在编译期间没有错误......是的。出了什么问题。 知道什么是错的?
#include <iostream>
#include <fstream>
#include <vector>
#include <cstdlib>
using namespace std;
int nwd (int a,int b);
int main(){
ifstream fin;
fin.open("krol.txt");
if (!fin) cout << "WTF" << endl;
system("PAUSE");
vector<int> tab;
int i=0;
int n=0;
while (fin>> i){
tab.push_back(i);
}
fin.close();
vector<int> result;
bool right=false;
ofstream outFile;
outFile.open("save.txt");
i=0;
result.at(0)=tab.at(0);
while(result.at(i)!=1){
if (right){
result.push_back(tab.at(i+2));
}
else if (nwd(result.at(i),tab.at(i+2))==1) result.push_back(tab.at(i+2));
else {
result.push_back(tab.at(i+1)); right=true;
}
outFile << result.at(i) << " " ;
i++;
}
outFile.close();
return 0;
}
int nwd(int a,int b){
while (a!=b){
a>b ? a-=b : b-=a;
}
return a;
}
答案 0 :(得分:0)
我想我明白了。您需要在(result.at(i)!= 1){更改代码时更改代码 这一次(tab.at(i)!= 1){。那只是一个小小的错误。
答案 1 :(得分:0)
您的result
向量为空,因此
while(result.at(i)!=1){
将抛出out_of_range
异常并导致程序终止。