while循环达到条件时,while循环不会终止

时间:2020-03-16 09:50:39

标签: c++

#include<iostream>
#include<algorithm>
using namespace std;
int main(){
    string str1,str2,str3;
    int val;
    char ch;
    cin>>val;
    while(val--){
        cin>>str1;
        str2=str1;
        reverse(str1.begin(),str1.end());

        for(int i=0;i<str1.size();i++){
             val=str1[i]-122+26;
             val+=str2[i]-122+26;
             val=val%26;
             ch=val+96;
              cout<<ch; 
        }
    }
    return 0;
}

每个字符串的第ith个字符都会添加到反向字符串的第ith个字符中。当我尝试输入值时,它会产生无限循环,这意味着while循环没有达到条件。我找不到原因。 任何帮助。

1 个答案:

答案 0 :(得分:2)

因为您重复使用了“ val”而没有再次声明。

计算机科学中有两个困难的问题

  • 缓存无效
  • 命名
  • 一个错误。

您是第二代的变体。重用名称,在应该为“ val”的两种用法之一进行更多描述的地方。