-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'时你有*未定义的行为。 –