阿尔托莉雅吖 @ 2019-11-28 17:01:12
**#include <stdio.h>
#include <string.h>
#define MAXN 10**
int main()
{
char str[50];
int i,n,length;
scanf("%d\n",&n);
n=n%26; \\取余
getchar(); \\把scanf后的回车拿掉
gets(str); \\输入str
length=strlen(str); \\记录长度
for(i=0;i<length;i++) \\进行译码
{
if(str[i]+n>'z')
str[i]='a'-1+(str[i]+n-'z');
else
str[i]=str[i]+n;
}
printf("%s",str); \\输出密码
return 0;
}
by 爱滑稽的蒟蒻 @ 2019-11-28 18:30:31
把
getchar()
改成
char c=getchar();
while(c!=13) c=getchar();
就好了
by szuwaterbrother @ 2019-12-01 11:03:15
windows里面回车是\r\n两个字符 linux 是\n 洛谷是linux评测机 你直接%s读入不就完事了吗
by szuwaterbrother @ 2019-12-01 11:03:50
by szuwaterbrother @ 2019-12-01 11:13:04
不要在输入里面+回车哦
**#include <stdio.h>
int main() {
char str[50];
int i,n,length;
scanf("%d",&n);
n=n%26; \\取余
getchar();
getchar(); \\把scanf后的回车拿掉
gets(str); \\输入str
length=strlen(str); \\记录长度
for(i=0;i<length;i++) \\进行译码
{
if(str[i]+n>'z')
str[i]='a'-1+(str[i]+n-'z');
else
str[i]=str[i]+n;
}
printf("%s",str); \\输出密码
return 0;
}