我想产生一个元素在向量中不再出现的次数。向量中的元素必须由种子(在这种情况下为3)随机分配。
例如,如果在矢量中再次显示数字2、6和4,大小为30,则由于3个数字重复,因此totalComplete应该为27。
#include <stdlib.h>
#include <iostream>
#include <iomanip>
#include <vector>
using namespace std;
int main()
{
vector<int> seats;
int totalComplete = 0;
srand(3);
seats.resize(30);
for(int k = 0; k < 20; k++){
seats.at(k)=(rand()%30);
cout << seats.at(k);
cout <<" ";
totalComplete++;
for(int j = 0; j < 20; j++){
if(j != k)
if(seats.at(k) == seats.at(j))
totalComplete--;
}
cout<<endl;
}
cout << totalComplete;
return 0;
}
所以在我的代码中,向量中随机放置的数字是6 25 18 0 15 10 12 16 1 4 28 4 3 19 22 21 24 25 115。数字25、15、1和4重复它们,所以totalComplete应该为16。但是,我的代码产生0。我认为检查数字是否重复的区域是错误的。
答案 0 :(得分:0)
我的直接建议是将代码分成小块,并分别测试每个代码。我将从一个函数开始,用随机数填充数组。然后,我将编写一个仅计算唯一条目的函数。分别测试每个人,并检查是否得到了期望的结果。然后,当每个人都单独工作时,将它们放在一起就可以得到一个完整的程序,该程序可以满足您的实际需求。