Die q-Schleife wird nicht inkrementiert. Wenn Sie es entfernen, wird es zu einer Endlosschleife. Es funktioniert einfach nicht mit q. Die k-Schleife funktioniert gut. Ich wäre wirklich hilfreich, wenn Sie auch erklären könnten, warum es passiert. Bitte helfen Sie !!Wie führe ich die q-Schleife (INCREMENT Q)?
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
using namespace::std;
int main() {
string input;
getline(cin, input) ;
vector<char> myVector(input.begin(), input.end());
vector<char> myVector2(input.begin(), input.end());
sort(myVector2.begin(), myVector2.end());
if(myVector2 == myVector){
cout << "rank :1";
}
else{
int i;
for (i = 0; i < myVector2.size(); i++){
cout << myVector2[i];
}
cout << endl;
int q = 0, k = 0, value = 1, w = 1;
while(q < myVector.size()){
while(k < myVector.size()){
while(myVector2[k] != myVector[q]){
while(w < myVector2.size()){
value = value * w ;
w++;
}
k++;
}
cout << value*k;
cout << endl;
myVector2.erase(myVector2.begin()+k);
for(int j = 0; j< myVector2.size(); j++){
cout << myVector2[j];
}
break;
}
q++;
break;
}
}
return 0;
}
Ich bin nicht in der Lage herauszufinden, was das Problem verursacht. Ich beschäftige mich zum ersten Mal mit Vektoren. –
Sie haben einen unberechtigten Zugriff mit 'while (myVector2 [k]! = MyVector [q]) {' ... – Jarod42
was ist der Zugriff außerhalb des Zugriffs? –