作者walm20 (New CygnusX)
看板C_and_CPP
標題Re: [問題] 凱薩加密跑出不出來
時間Wed Jun 10 18:40:19 2009
※ 引述《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
推 stonehomelaa:不只這些問題 還有他根本沒改到str 06/10 18:46
→ stonehomelaa:char act[1]; XD 06/10 18:47
→ walm20:有改到阿 他沒有去更改指標 06/10 18:53
※ 編輯: walm20 來自: 140.118.126.177 (06/10 18:54)
推 VictorTom:看到這種題目現在第一個反應就是開兩個字母array建表XD 06/10 18:55
推 stonehomelaa:腦殘看錯 囧 06/10 19:06