回覆列表
  • 1 # 萌無敵一夢味少

    總體設計:

    從鍵盤輸入一個字串(僅限於小寫英文字母),根據金鑰(使用者從鍵盤輸入,可在1-6範圍內)將對應字元進行移位操作即可加密,解密時移動相反。

    如加密:設原文為abcdef,金鑰為5,則有abcdef每個字母按字母表向後移動5位(注:z後接a)可得到密文(亂碼)fghijkl。

    如解密:檔案內容為fghijk1,金鑰為5,則有fghijk1每個字母向前移動5位(注a後接z),可得到原文abcdef。

    除錯分析過程描述:

    如輸入的字串為“hijklmnopq”

    輸入1←則加密:

    即會顯示“mnopqrstuv”

    具體實現程式碼:

    #include<stdio.h>

    voidcode(char*p,intkey)

    {

    while(*p!="\0")

    {

    *p=97+(*p-97+key)%26;

    p++;

    }

    }

    voiduncode(char*p,intkey)

    {

    while(*p!="\0")

    {

    *p=97+(*p-71-key)%26;

    p++;

    }

    }

    main()

    {

    charstr[100];

    intn,key;

    printf("輸入密匙:");

    scanf("%d",&key);

    printf("輸入1加密,輸入2解密:");

    scanf("%d",&n);

    printf("輸入字串:");

    scanf("%s",str);

    if(n==1)

    {

    code(str,key);

    printf("密文為%s\n",str);

    }

    elseif(n==2)

    {

    uncode(str,key);

    printf("原文為%s\n",str);

    }

    }

  • 中秋節和大豐收的關聯?
  • 每個閏年有多少天?是多少個星期零幾天?怎樣知道算出的星期對不對呢?