| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 627 人关注过本帖
标题:if 和 else if 的执行结果不同求教
取消只看楼主 加入收藏
库特莉亚芙卡
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2015-10-22
收藏
 问题点数:0 回复次数:1 
if 和 else if 的执行结果不同求教
在校OJ上做一道密信的题,题目见下
Description

这里有一封加密过的信,需要你翻译。
信的内容为一行无空格的小写字符串。
翻译规则如下:
b 代表 ' '
q 代表 ','
t 代表 '!'
m 代表 l
i 代表 e
c 代表 a
a 代表 c
e 代表 i
l 代表 m

Input
输入包含多组测试用例。
每组测试用包含一个长度不超过10000的字符串。
Output
对于每组测试用例,输出翻译后的结果。
Sample Input
pmicsibforgevibliqbscrct
ebmovibyout
Sample Output
please forgive me, sara!
i love you!

下面是我写的代码
#include <cstdio>
#include <cstring>
using namespace std;
int main()
{
    static char a[10000];
    while(gets(a)!=NULL)
    {
        for (int t=0; t<strlen(a); t++)
        {
            if (a[t]=='b') a[t]=' ';
            if (a[t]=='q') a[t]=',';
            if (a[t]=='t') a[t]='!';
            if (a[t]=='m') a[t]='l';
            if (a[t]=='i') a[t]='e';
            if (a[t]=='c') a[t]='a';
            if (a[t]=='a') a[t]='c';
            if (a[t]=='e') a[t]='i';
            if (a[t]=='l') a[t]='m';
        }
        puts(a);
    }
    return 0;
}
可是我将示例数据输入之后却发现输出了这个结果
pmicsi forgivi mi, scrc!
看来是仅仅把b换成了空格。
当我把从第二个if开始都加上else之后就正常了……
请教一下这是为什么呢?不胜感激!!!!
搜索更多相关主题的帖子: please 字符串 加密 
2015-10-22 00:17
库特莉亚芙卡
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2015-10-22
收藏
得分:0 
回复 2楼 Spy001
谢谢。
那请问为什么不能直接多条if并列呢?
2015-10-22 07:14
快速回复:if 和 else if 的执行结果不同求教
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.033111 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved