lijiatu123 @ 2022-11-20 11:12:21
#include<stdio.h>
#include<string.h>
int main()
{
int n,i,l;
char a[10000];
scanf("%d\n",&n);
scanf("%s",a);
n=n%26;
l=strlen(a);
for(i=0;i<=l;i++)
{
a[i]+=n;
printf("%c",a[i]);
}
return 0;
}
by Ja50nY0un9_as_AgNO3 @ 2022-11-20 11:25:35
@lijiatu123 首先,因为是循环的,所以当超过z的时候要减去26。
其次,strlen给出的长度是a的长度+1,所以应是i<l而不是i<=l。
而且char貌似存不下'z'+25那么大的数,所以要强制转成int做。
#include<stdio.h>
#include<string.h>
int main()
{
int n,i,l;
char a[10000];
scanf("%d\n",&n);
scanf("%s",a);
n=n%26;
l=strlen(a);
for(i=0;i<l;i++)
{
int x=a[i];
x+=n;
if(x>'z') x-=26;
printf("%c", x);
}
return 0;
}
by lijiatu123 @ 2022-11-20 18:22:57
谢谢哥