这串代码在visual studio里都可以输出结果了,但是我放到oj上显示编译失败,是main和work的那个数字报的错,怎么改啊
数组 work[1000][100] 是否开的太大了,另第24行 至 第27间算法还是有问题的,如果 x = 26,此时A-U之间就的字符都出错了。
修改如下,供参考:
#include <stdio.h>
int main()
{
int x,i=0;
char work[100];
scanf("%d", &x);
getchar();
gets(work);
while(work[i])
{
if (work[i]>='A' && work[i] <= 'Z')
work[i] = (work[i] - 'A' + x) % 26 + 'A';
else if (work[i]>='a' && work[i] <= 'z')
work[i] = (work[i] - 'a' + x) % 26 + 'a';
i++;
}
printf("%s", work);
return 0;
}