我编写了以下代码将数字转换为字母。我的问题是程序正确地转换了用户输入的第一个数字,但它给了其他第一个相同的字母。
例如,如果用户输入数字012
,则程序会将其转换为ABC
而不是AAA
。
我在system ("pause")
收到错误,我该如何解决?
#include <iostream>
#include <stack>
using namespace std;
int main() {
int n;
string t,u="";
stack<string> s;
cout<<"Enter a number n: ";
cin>>n;
for(int i=0;i<n;i++){
cin>>t;
for(int j=0;j<t.length();j++){
if(t[i]=='0')
u= u+'A';
if(t[i]=='1')
u= u+'B';
if(t[i]=='2')
u= u+'C';
if(t[i]=='3')
u= u+'D';
if(t[i]=='4')
u= u+'E';
if(t[i]=='5')
u= u+'F';
if(t[i]=='6')
u= u+'G';
if(t[i]=='7')
u= u+'H';
if(t[i]=='8')
u= u+'I';
if(t[i]=='9')
u= u+'J';
}
s.push(u);
}
while(!s.empty()){
cout<<s.top()<<" ";
s.pop();
}
system("pause"); //error
return 0;
}
答案 0 :(得分:0)
内部for
循环中的循环变量为j
,但在循环中,您使用的是i
而不是j
:
for (int j = 0; j < t.length(); j++)
{
if(t[i] == '0') //<<<< use j instead of i here
...
}
如果您的代码已正确缩进/格式化,您可以自己找到。