[問題] 凱薩加密跑出不出來

看板C_and_CPP (C/C++)作者 (http://0rz.tw/h23pD )時間16年前 (2009/06/10 16:32), 編輯推噓0(003)
留言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
Euler耶...
06/10 17:00, 1F

06/10 17:15, , 2F
code超過一面 考慮一下置底吧
06/10 17:15, 2F

06/10 18:10, , 3F
call by reference 用**
06/10 18:10, 3F
※ 編輯: Euler 來自: 163.25.118.177 (06/10 18:36)
文章代碼(AID): #1ABs-x5u (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1ABs-x5u (C_and_CPP)