大佬,萌新这样写哪里有毛病

P1914 小书童——凯撒密码

丿雨落★花开 @ 2019-11-30 18:58:40


#include <stdio.h>

#include <string.h>
int main()
{
    int a;
    scanf("%d", &a); getchar();
    char c;
    while (scanf("%c", &c) != EOF)
    {   if(c+a<='z')
        printf("%c", c + a);
    else    printf("%c", c+a-26);
    }

    return 0;

}

by bigbigdoggy @ 2019-11-30 19:02:04

等着哈(虽然我不是大佬,但我会凑热闹)


by bigbigdoggy @ 2019-11-30 19:19:44

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int a;
    cin>>a;
    getchar();
    char c[51]= {0};
    cin>>c;
    int lenc=strlen(c);
    for(int i=0; i<lenc; i++)
    {
        for(int j=0; j<a; ++j)
        {
            c[i]++;
            if(c[i]>'z')
            {
                c[i]='a';
            }
        }
        cout<<c[i];
    }
    return 0;
}

by Hangerill @ 2019-11-30 19:21:10

@assassinRay 人家C代码,可您打的C++


by bigbigdoggy @ 2019-11-30 19:25:50

有区别吗


by bigbigdoggy @ 2019-11-30 19:26:11

稍稍修改一下啦(嘻嘻)


by Hangerill @ 2019-11-30 19:49:14

//核心代码
   char s[52];//C语言字符串  
    scanf("%s",&s);//读入字符串(如果带空格可以用gets?) 
    for(int i=0;i<strlen(s);i++){
        printf("%c",char((s[i]-'a'+a)%26+'a'));
    }

strlen()字符串长度 包含在string.h中 s[i]-'a' ——小写第n个字母(a为0) +a ——变换 %26——取余确定是变换后第几个 +'a'重新转换


|