我想知道我在这里做错了什么。我试图得到一堆非重复的向量。有人可以告诉我我的拼写错误在哪里帮助我吗?我现在只是瞎了。它运行得很好,没有错误。但它没有给出任何输出。我真的很感激。我只是为自己建一个图书馆。
class vectGet {
public:
long long integral = 0;
long long t = 14;
string fname = "";
long s_nop(long t);
} n;
long vectGet::s_nop(long t) {
n.integral++;
if (abs(round((n.t*1.618)*n.t-(n.integral+0.618))-1) <= 4294967296)
return (abs(round((n.t*1.618)*n.t-(n.integral+0.618))-1));
else
return (abs(round(sqrt(n.t))+(round(sqrt(n.t))*round(sqrt(n.integral))+1)));
}
int main() {
long bn=0;
printf("How many Vectors should we make? ");
cin >> bn;
vector<long> deriv;
if (bn <= 0) {
printf("Invalid number of vectors, Exiting");
return 1;
}
printf("\nOutput File: ");
cin >> n.fname;
if (n.fname=="") {
printf("You must choose a filename to continue...");
return 1;
}
ofstream out;
out.open(n.fname.c_str(), std::ios::out);
for (long i=1;i<=bn;i++) {
n.t=n.s_nop(n.t);
for (long j=0;j<deriv.size();j++) {
if (n.t == deriv[j]) {
i--;
break;
}
deriv.push_back(n.t);
printf(".");
}
}
cout << "Writing to file.." << endl;
for (long j=0;j<deriv.size();j++)
out << deriv[j] << " ";
out.close();
return 0;
}
答案 0 :(得分:1)
j<deriv.size()
为0,因此它永远不会运行内部循环,然后它不会将任何内容写入文件。
答案 1 :(得分:0)
这是缺少的代码。这将创建一个在要创建的限制下的任意数量的向量的列表。所有这些都可以按顺序复制,具有随机性。
ofstream out;
out.open(n.fname.c_str(), std::ios::out);
for (long i=1;i<=bn;i++) {
n.t=n.s_nop(n.t);
deriv.push_back(n.t);
for (long j=1;j<deriv.size()-1;j++) {
if (n.t == deriv[j-1]) {
i--;
deriv.pop_back();
break;
}
}
}
cout << "Writing to file.." << endl;
for (long j=0;j<deriv.size();j++)
out << deriv[j] << " ";
out.close();
return 0;
}