[問題] 凱薩加密跑出不出來
看板C_and_CPP (C/C++)作者Euler (http://0rz.tw/h23pD )時間16年前 (2009/06/10 16:32)推噓0(0推 0噓 3→)留言3則, 2人參與討論串1/2 (看更多)
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
→
06/10 17:00, , 1F
06/10 17:00, 1F
→
06/10 17:15, , 2F
06/10 17:15, 2F
→
06/10 18:10, , 3F
06/10 18:10, 3F
※ 編輯: Euler 來自: 163.25.118.177 (06/10 18:36)
討論串 (同標題文章)
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章