-2
你好,我寫了一個代碼,但如果我想運行代碼後,我輸入的代碼,它只是崩潰。 程序應該選擇矢量中的前10個,挑選最高的一個,並在此之前摧毀所有的東西,然後重新填充它,直到它再次變成十個長爲止。 我用一個for循環來做到這一點。我剛剛開始了這個2個月。輸入崩潰(C++)
#include <iostream>
#include <algorithm>
#include <vector>
#include <iterator>
using namespace std;
int main()
{
int Aantal;
cin >> Aantal;
vector<int> F(Aantal);
for(int i=0; i<Aantal; i++)
{
cin >> F[i];
if(Aantal>1000)
{
cerr << "You're above 1000" << endl;
return -1;
}
if(Aantal<20)
{
cerr << "You're below 20" << endl;
return -1;
}
if(i>Aantal)
{
cerr << "Not above 'Aantal'" << endl;
return -1;
}
if(i<0)
{
cerr << "Not smaller than 0!" << endl;
return -1;
}
}
for(int z=0; z<Aantal; z++)
{
if(z == 0){
int a = 0;
}
int a;
vector<int> arr(F.begin()+a, F.begin()+10+a);
int c = *max_element(arr.begin(), arr.end());
cout << c << endl;
vector<int>::iterator q;
q = find(arr.begin(), arr.end(), c);
int pos = distance(arr.begin(), q);
arr.erase(arr.begin(),arr.begin()+pos);
int a1 = 10-arr.size();
int b = a+a1;
a = b;
if(a+10>Aantal)
{
break;
}
arr.erase(arr.begin(), arr.end());
你能解釋一下這裏試圖做什麼嗎?對於(int z = 0; z arr(F.begin()+ a,F.begin()+ 10 + a);' –
Pranjal