用long long解决了昨天的问题,以及用其他方法将此题做出。
原方法代码如下:
#include<stdio.h>
int main()
{
char a;
long long m,n;
scanf("%c %lld",&a,&m);
n=a-m;
do{
if(n<97){
n=n+26;
}else if(n>122){
n=n-26;
}else{
n=n;
}
}while(n<97||n>122);
printf("%c\n",n);
return 0;
}
另一种方法代码如下:
#include<stdio.h>
int main()
{
char a;
long long b;
scanf("%c %lld",&a ,&b);
b=-b;
b=((b%26)+26)%26;
putchar(((a - 'a' + b) + 26) % 26 + 'a');
return 0;
}
因为以前没有遇到过可能会越界的题目,所以没有考虑那么多,有这次的教训,下次遇到类似的题目就可以更好更快的解决。