pppphhhhyyyy 2023-05-12 22:32 采纳率: 80.6%
浏览 18
已结题

环形加密的一个问题,实在是找不到哪里错了

#include <stdio.h>
int main()
{
    char c;
    int key;
    scanf("%c", &c);
    scanf("%d", &key);
    if(key>=0)
    {
        if(key>('z'-c))
        {
         c='a'+(key-('z'-c+1))%26;
         printf("%c",c);
        }
        else
        {
            c=c+key;
            printf("%c",c);
        }
    }
    else
    {
        if((-key)>c-'a')
        {
            c='z'+((key+(c-'a'+1))%26);
            printf("%c",c);
        }
        else
        {
            c=c+key;
            printf("%c",c);
        }
    }
        return 0;
}

img

img

img

  • 写回答

1条回答 默认 最新

  • threenewbee 2023-05-12 23:10
    关注
    #include <stdio.h>
    int main()
    {
        char c;
        int key;
        scanf("%c", &c);
        scanf("%d", &key);
        int offset = (c - 'a' + key + 26) % 26;
        printf("%c", offset + 'a');
        return 0;
    }
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 5月21日
  • 已采纳回答 5月13日
  • 创建了问题 5月12日