如何在循环外打印总和?我认为全局变量和局部变量的减速存在一些错误
How do I print the sum outside the loop ? I think there's some mistake in deceleration of global and local variable
当我把第六行(cout <<"排名:" <<Sum + 1 <<在循环外,它表示sum没有在此范围内声明。代码在下面:
#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行:"排名:" <<Sum + 1 <<endl;跳出循环?并请说明原因
在c++中,每次花括号打开时,创建一个新的作用域,关闭时,销毁它。每个作用域都可以访问其他作用域,只要它们没有被销毁。
sum在第一个while循环的作用域中声明。因此,当while循环关闭时,作用域被销毁,从而导致sum声明无效/销毁。
必须在循环之前声明sum,并且可能需要初始化它。
int q = 0, value = 1, w = 1, sum = 0;
while( ... ) {
...
}
相关文章:
- 赋予全局变量而不是局部变量优先级的函数 - (异常行为)
- 使用全局变量与局部变量和require
- 将变量声明为全局变量,然后声明为局部变量 -Shadowing-
- 局部变量如何隐藏全局变量
- 编译器是否可以从全局变量中读取两次,而不是存储一个局部变量
- 我不知道如何让我的程序使用局部变量而不是全局变量
- 怎么可能有两个同名的变量——一个是全局变量,另一个是局部变量
- 递归计算在不使用静态局部变量,全局变量或静态函数的情况下,在递归函数中发生的环数
- 初学者程序员 c++(局部与全局变量声明)
- 使用局部全局变量在单独的线程中运行C函数
- Arduino/C++全局变量与局部变量
- 编译器如何知道变量是全局变量还是局部变量(C)
- 当局部变量被复制到全局变量时,C++GCC优化速度会减慢
- 为什么局部变量不隐藏数组定义中的全局变量
- 要创建持久变量,最好是使用局部静态变量还是全局变量
- 全局变量和局部变量
- C++:全局变量与局部变量.使用什么
- C++-全局变量与局部变量的读/写速度
- 理解局部和全局变量:C++
- 在 C++ 中将局部变量分配给全局变量