-1
當我把六號最後一行(COUT < <「排名:」 < <總和+ 1個< < ENDL;)外循環,它說這筆款項並沒有在聲明這個範圍。 代碼的正下方:如何在循環外打印總和?我覺得有一個在全局和局部變量的減速一些錯誤
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
using namespace::std;
int main() {
string input;
cout << "Don't enter repetitive alphabet word \n" << "Enter a word : ";
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{
for (int i = 0; i < myVector2.size(); i++){
//cout << myVector2[i];
}
cout << endl;
int q = 0, value = 1, w = 1;
while(q < myVector.size()){
int k = 0, temp = 0, sum, value = 1, w = 1;
while(k < myVector2.size()){
while(myVector2[k] != myVector[q] && k < myVector2.size()){
while(w < myVector2.size()){
value = value * w ;
w++;
}
k++;
}
temp = value * (k);
break;
}
sum = sum + temp;
myVector2.erase(myVector2.begin()+k);
/* for(int j = 0; j < myVector2.size(); j++){
cout << myVector2[j];
}*/
cout << "rank : " << sum + 1 << endl;
q++;
}
}
}
如何打印6日最後一行:COUT < < 「排名:」 < <總和+ 1 < < ENDL; 循環之外?並請解釋原因
問題是你的'sum'是在循環中聲明的。向上移動聲明。 – alexeykuzmin0
定義循環外的變量'sum'? –
另外,變量'sum'在你使用它之前沒有被初始化,所以當你做'sum + temp'時你有*未定義的行爲。 –