数组变化时,为什么我设一个数组直接变化不行呢

为什么这两个代码输出来的答案不一样
题目在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<

img

img

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

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632