原题:
有一行电文,已按下面的规律翻译成密码:
A―Z:B―Y:C―X:
a--z: b--y:c--x:
既第一个字母变成第26-i+1个字母,非字母字符不变,要求编程将字符翻译回原文
并打印出密码和原文;
它说的意思是什么;1:是先按顺序定义好?比如str[26]={a,b,c,d,e,f,g,h,i........}
还是把字母的顺序打乱 用gets(str)输入字符
可要是打乱的话 字母的位置怎么判断
比如;输入acbwqet;
a是第一位。用26-1+1变成字母z。可b在第3的位置,b 要变成y的话 要用26-2+1变
可它现在的位置不是第2位, 怎么来判断i???
----------------解决方案--------------------------------------------------------
A―Z:B―Y:C―X: 按照英文字母的顺序,A + Z = 27;B + Y = 27; C + X = 27; 你知道ASCII码吗??? A--Z在计算机中是用ASCII表示的,A为65,Z为90;a为97,b为122 所以你可以发现: A + Z = 155; a + z = 219; B + Y = 155; b + y = 219; 上面的就是规律; char A[] = "acbwqet"; int i = 0;
while(A[i] != '\0') { if(A[i] >= 65 && A[i] <= 90) { A[i] = 155 - A[i]; } if(A[i] >= 97 && A[i] <= 122) { A[i] = 219 - A[i]; } i++; } //以上仅供参考。
[此贴子已经被作者于2004-09-11 11:44:48编辑过]
----------------解决方案--------------------------------------------------------
写出来了 谢谢朋友!
----------------解决方案--------------------------------------------------------
8错,有启发!
----------------解决方案--------------------------------------------------------
----------------解决方案--------------------------------------------------------