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


第一段 11行改成else if就好了啊
主要原因是第一个if把a[i]的值修改后,这个a[i]的值又满足了第二个if条件,导致再次被修改啦。