c的模运算有负数
#include<stdio.h>
char encode(char a){
if(a>='a' && a<='z'){
a=(a+1-'a'+26)%26+'A';
}
else if(a>='A' && a<='Z'){
a=(a+1-'A'+26)%26+'a';
}
else if(a>='0' && a<='9'){
a=(a+1-'0'+10)%10+'0';
}
return a;
}
char decode(char a){
if(a>='a' && a<='z'){
int aa = a-1-'a';
int bb = (a-1-'a')%26;
a=(a-1-'a'+26)%26+'A';
}
else if(a>='A' && a<='Z'){
a=(a-1-'A'+26)%26+'a';
}
else if(a>='0' && a<='9'){
a=(a-1-'0'+10)%10+'0';
}
return a;
}
int main(){
char data[1000]={0};
char data2[1000]={0};
while(scanf("%s", data) != EOF){
for(int i=0; data[i]!='\0'; i++){
printf("%c", encode(data[i]));
}
printf("\n");
scanf("%s", data2);
for(int i=0; data2[i]!='\0'; i++){
printf("%c", decode(data2[i]));
}
printf("\n");
}
}