jango @ 2023-08-19 13:32:06
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n;
char s[55];
scanf("%d",&n);
scanf("%s",&s);
n=n%26;
for(int i=0;s[i]!='\0';i++)
{
s[i]+=n;
for(;s[i]>'z';)
{
s[i]=s[i]-'a'+'z'-1;
}
}
printf("%s",s);
return 0;
}
by czwhaha @ 2023-08-19 13:56:05
你试一下c++(代码如下)
#include<bits/stdtr1c++.h>
using namespace std;
int main(){
string a;
int n;
cin>>n;
cin>>a;
for(int i=0;i<a.length();i++){
a[i]=(a[i]+n-'a')%26+'a';
}
cout<<a;
return 0;
}
by xQWQx @ 2023-08-19 14:12:28
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n;
char s[55];
scanf("%d",&n);
scanf("%s",&s);
n=n%26;
for(int i=0;s[i]!='\0';i++)
{
s[i]+=n;
for( ;s[i]>'z'; )
{
s[i]=s[i]-'z'+'a'-1;//这里错了
}
}
printf("%s",s);
return 0;
}
by xQWQx @ 2023-08-19 14:16:44
@jango
当字母大于‘z’的时候应该减去‘z’而不是‘a’然后加上‘a’
因为大于‘z’我们就要知道是多了几个字符,然后加上‘a’就能知道密码
by xQWQx @ 2023-08-19 14:20:12
@jango
你可以试一试在你原来的代码里输入:
27
zzzzzzzzzzzzz
会输出:摀摀摀摀摀摀
by xQWQx @ 2023-08-19 14:33:57
虽然有人回复了但是他没有说你错哪,蒟蒻补充一下。
by jango @ 2023-08-19 15:27:45
@C112345565 确实是这样,老哥,但改成你的,还是有问题,你输入 25 xxxxx 试一下,是乱码
by xQWQx @ 2023-08-19 16:52:10
@jango
蒟蒻太弱了
但蒟蒻帮你下载了#4的数据
输入:
25
abcxyz
输出:
zabwxy
by xQWQx @ 2023-08-19 16:52:38
@jango
蒟蒻再改一下
by jango @ 2023-08-19 19:06:50
@C112345565 大佬很强了已经
by wbhqm @ 2023-08-23 13:40:08
@jango
#include<iostream>
#include<iomanip>//fixed,setprecision
#include<math.h>
#include<algorithm>
#include<string>
#include<stdio.h>
using namespace std;
char a[55];
int main()
{
int n;
string str;
cin>>n>>str;
for(int i =0; i <str.size();i++)
{
for(int j =1; j<=n; j++)
{
str[i]+=1;
if(str[i]=='z'+1)
{
str[i]='a';
}
}
}
cout<<str;
return 0;
}
自己看吧。