1. 程式人生 > >小鑫の日常系列故事(七)——小紙條

小鑫の日常系列故事(七)——小紙條

Problem Description 小鑫在高中的時候喜歡上了一個十分漂亮的女孩。那個女孩也很喜歡他,就答應成為他的女朋友。 但是大家都知道高中的生活是忙碌的,除了上課就是上課,有時候可能連課間時間都被老師佔用。於是小鑫想出了在上課給女朋友傳紙條的方法來表達自己的愛慕。 又但是她與小鑫之間的距離太遠,中間必須通過同學來傳遞紙條。可他們並不想讓同學們知道寫的什麼就想到加密紙條這種方法。方法如下: 他們每天都會約定加密常數n,舉個例子,當n=1時,今天寫的每一句話中所用的字母都會向後+1,比如:i love you就成了j mpwf zpv ,當然了當是z的時候,+1就等於a。 請你幫他女朋友解密他寫的紙條麼? Input 輸入為多組,每組為兩行。 第一行為n,-50<n<50 第二行為一句話,只有小寫字母和空格。長度小於10000 Output 輸出解密之後的內容 Sample Input 1 j mpwf zpv Sample Output i love you

程式碼:


#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{ char a[10009],ch;
int n,i,len,m,k;
    while(~scanf("%d",&n))
    {
       ch=getchar();
        gets(a);
        k=n%26;
        len=strlen(a);
        printf("%c\n",ch);
        for(i=0;i<len;i++)
        {
           if(a[i]!=' ')
           {
               m=a[i]-k;
               if(m>122)
               {
                   a[i]=97-1+(m-122);
               }
               else if(m<97)
               {
                   a[i]=122+1-(97-m);
               }
               else a[i]=m;
           }


        }
        printf("%s",a);
        printf("\n");
    }

    return 0;
}

putchar的妙用:putchar可以在鍵盤上讀取一個字元,在這裡是吸收緩衝區的回車的作用, 比如在這裡scanf()和gets()函式之間會有一個回車的符號, 這樣在你點回車的時候,putchar會認為你把回車的符號給了他,然後就不顯示了