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

看板C_and_CPP (C/C++)作者 (New CygnusX)時間16年前 (2009/06/10 18:40), 編輯推噓3(302)
留言5則, 3人參與, 最新討論串2/2 (看更多)
※ 引述《Euler (http://0rz.tw/h23pD )》之銘言: : 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); // 1個參數? : 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) : 整個加密都是往右移五位 : 可是我只能跑到要問我加密解密那裡 : 接下來就沒有跑出密文 : 請問可以幫我看看哪裡出問題了嗎 -- 我的露天拍賣: http://tinyurl.com/6z4rw7 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.118.126.177

06/10 18:46, , 1F
不只這些問題 還有他根本沒改到str
06/10 18:46, 1F

06/10 18:47, , 2F
char act[1]; XD
06/10 18:47, 2F

06/10 18:53, , 3F
有改到阿 他沒有去更改指標
06/10 18:53, 3F
※ 編輯: walm20 來自: 140.118.126.177 (06/10 18:54)

06/10 18:55, , 4F
看到這種題目現在第一個反應就是開兩個字母array建表XD
06/10 18:55, 4F

06/10 19:06, , 5F
腦殘看錯 囧
06/10 19:06, 5F
文章代碼(AID): #1ABusMTm (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1ABusMTm (C_and_CPP)