作者Euler (http://0rz.tw/h23pD )
看板C_and_CPP
标题[问题] 凯萨加密跑出不出来
时间Wed Jun 10 16:32:57 2009
http://nopaste.info/70410c35f6.html
#include <stdio.h>
#include <stdlib.h>
void caesar(char s[],char a[]);
int main(void)
{
char str[100];
char act[1];
printf("请输入一段英文字母: ");
gets(str);
printf("请输入加密(c)or解密(d):") ;
gets(act);
caesar(str,act);
printf("%s後: %s\n",act);
system("pause");
return 0;
}
void caesar(char s[],char a[])
{
int i=0;
int j=0;
while ( s[i]!='\0',a[j]='\99' )
{
if (s[i]>=97 && s[i]<=117)
s[i]=s[i]+5; /*如果加密往左移五位*/
else if (s[i]>=118 && s[i]<=122)
s[i]=s[i]-21;
else if (s[i]>=65 && s[i]<=85)
s[i]=s[i]+5; /*如果加密往左移五位*/
else if (s [i]>=86 && s[i]<=90)
s[i]=s[i]-21 ;
i++;
}
while ( s[i]!='\0', a[j]=100)
{
if (s[i]>=97 && s[i]<=117)
s[i]=s[i]-5; /*如果加密往左移五位*/
else if (s[i]>=118 && s[i]<=122)
s[i]=s[i]+21;
else if (s [i]>=65 && s[i]<=85)
s[i]=s[i]-5; /*如果加密往左移五位*/
else if (s [i]>=86 && s[i]<=90)
s[i]=s[i]+21;
i++;
}
}
先输入一段英文
再打上要加密(c)or解密(d)
整个加密都是往右移五位
可是我只能跑到要问我加密解密那里
接下来就没有跑出密文
请问可以帮我看看哪里出问题了吗
--
我小学念书赢人;国中时念书赢人;高中时念书赢人;大学时念书赢人。
最後毕业於名校研究所。但是毕业後我突然感到害怕,以後没书念了。
没有什麽可以让我用来肯定自己,并且证明自己比别人优秀了。
但是我想到毕业於名校研究所。於是,出了社会到了职场,顶着名校光环,
我常常呛人家是什麽学校毕业的,好为只会读书而在其他方面很无能的自己...
挽回一点颜面。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 163.25.118.177
1F:→ walm20:Euler耶... 06/10 17:00
2F:→ walm20:code超过一面 考虑一下置底吧 06/10 17:15
3F:→ Laputaet3:call by reference 用** 06/10 18:10
※ 编辑: Euler 来自: 163.25.118.177 (06/10 18:36)