[求助]一道c++数组问题
程序代码:
题目是:有一行电文,已按下面规律译成密码:A->Z a->z B->Y b->y C->X c->x … 即第一个字母变成第26个字母,第i个字母变成第(26-i+1)个字母。非字母字符不变,要求编程序将密码译回原文,并打印出密码和原文。 code: 1 #include <iostream> 2 using namespace std; 3 int main(void) 4 { 5 char data[11]; 6 int i; 7 8 cin>>data; 9 10 for (i = 0; i < 10; i++) 11 { 12 if (data[i] >= 'a' && data[i] <= 'm') 13 data[i] = 'z' - (data[i] - 97); 14 if (data[i] >= 'A' && data[i] <= 'M') 15 data[i] = 'Z' - (data[i] - 65); 16 if (data[i] > 'm' && data[i] <= 'z') 17 data[i] = 'a' + (data[i] - 110); 18 if (data[i] > 'M' && data[i] <= 'Z') 19 data[i] = 'A' + (data[i] - 78); 20 cout<<data[i]; 21 } 22 23 return 0; 24 } 求教这段代码为什么输出的是乱码呢?哪里出现错误了?