为什么这两个代码输出来的答案不一样
题目在http://noi.openjudge.cn/ch0107/10/
#include<iostream>
#include<string.h>
using namespace std;
int main(){
char a[200];
int i;
cin.getline(a,200);
int m=strlen(a);
for(i=0;i<m;i++){
if(a[i]>='F'&&a[i]<='Z') a[i]-=5;
if(a[i]>='A'&&a[i]<='E') a[i]+=21;
}
cout<<a;
}
#include<iostream>
#include<string.h>
using namespace std;
int main(){
char a[200],b[100];
int i;
cin.getline(a,200);
int m=strlen(a);
for(i=0;i<m;i++){
b[i]=a[i];
if(a[i]>='A'&&a[i]<='E') b[i]=a[i]+21;
if(a[i]>='F'&&a[i]<='Z')b[i]=a[i]-5;
}
cout<<b;
}