sakai @ 2018-12-18 23:10:43
#include<stdio.h>
int main()
{
int n=0;
char code[50] ;
scanf("%d", &n);
scanf("%s", &code);
for (int i = 0; i < 50; i++)
{
if (code[i] == '\0')
{
break;
}
code[i] = code[i] + n;
}
puts(code);
}
by sakai @ 2018-12-18 23:24:11
看了测试数据大概懂了自己错在哪里了
by apassbydreg @ 2018-12-18 23:27:16
很显然,当输入
30
xyzabc
的时候你这个写法输出有问题,你需要思考当字母超过z
时应该如何输出,下面是我的写法
------ 给你思考的分隔线 ------
\\
\\
\\
\\
\\
\\
\\
\\
\\
\\
\\
\\
\\
\\
\\
\\
\\
\\
\\
\\
\\
\\
\\
\\
\\
------ 想到了吗? ------
\\
\\
\\
\\
\\
\\
\\
\\
\\
\\
\\
\\
\\
\\
\\
\\
\\
\\
#include<stdio.h>
#include<string.h>
int main()
{
char input[50],output[26]="abcdefghijklmnopqrstuvwxyz";
int i,n;
scanf("%d", &n);
scanf("%s", input);
for(i=0;i<50 && input[i]!=0;i++) printf("%c", output[(input[i]-97+n)%26]); // 看懂这句话很重要
return 0;
}
by apassbydreg @ 2018-12-18 23:28:32
啊对了。。。 string.h
不是必须的。。。我忘记删掉了