![]() |
#2
rjsp2015-11-09 09:01
|

题目是:有一行电文,已按下面规律译成密码: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 }
求教这段代码为什么输出的是乱码呢?哪里出现错误了?
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 }
求教这段代码为什么输出的是乱码呢?哪里出现错误了?