60分求助!!c++/c

P1914 小书童——凯撒密码

CZZwolf @ 2023-06-18 22:26:17

#include<cstdio>
using namespace std;

int n;
char ywbmm[50];
int i=0;
int main()
{
    scanf("%d",&n);
    scanf("%s",&ywbmm);
    for(i=0;i<=sizeof(ywbmm);i++)
    {
        if(ywbmm[i]>='a'&&ywbmm[i]<='z')
        {
            if((ywbmm[i]+n)<='z') ywbmm[i]+=n;
            else ywbmm[i]+=n-('z'-'a');
            printf("%c",ywbmm[i]);
        }
    }
    return 0;
}

我太难了呜呜呜呜


by 13245zy @ 2023-06-19 01:08:15

你for循环里面这样写: ywbmm[i]+=n; if(ywbmm[i]<'a'||ywbmm[i]>'z') s[i]-=26; printf("%c",ywbmm[i]); 这样就能AC了!


by bedboy @ 2023-06-19 07:55:40

一看就是练习时长不够

by bedboy @ 2023-06-19 08:06:24

@CZZwolf 你直接这样写他不香吗

//c++
#include<bits/stdc++.h>
using namespace std;
int main(){
    string s;
    int n;
    cin>>n>>s;
    for(int i=0;i<s.size();i++){
        if(char(s[i]+n)<='z' && char(s[i]+n)>='a'){
            s[i]=char(s[i]+n);
        }
        else{
            int t=n;
            t=t-int('z'-s[i]);
            t--;
            s[i]=char('a'+t);
        }
    }
    cout<<s<<endl;
    return 0;
} 

别忘点个关注


by CZZwolf @ 2023-06-19 11:42:05

@13245zy 感谢!但是我为能看出这两者之间的区别,请问可以告诉我这是怎么做到的吗?


by 13245zy @ 2023-06-19 13:13:53

你要先加完n,在判断它是否大于‘z’,大于就把它变成‘a’。 如果想感谢我,就加个关注吧!


|