有史以来最困难的题

Julius Caesar住在一个充满危险和阴谋的时代,他遇到的最困难的境遇是让自己存活,为了让自己存活,他决定创建一个以及的秘密文件,此密码文件是一件很令人难以置信的事,在不知道它的工作原理前没人能理解它。
你是Caesar军队的一个分队长,你的工作室破译Caesar送来的信息并汇报给你的上级。
密码很简单,每个字母对应着一个明文,你将明文向右移五步以得到安全的信息。

加密文本
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
明文文本
V W X Y Z A B C D E F G H I J K L M N O P Q R S T U
密文中只有字母被切换了,非字母的字符应该保持不变,所有的字母都是大写的。
输入:
这个问题的输入包括一系列(非空)最多100个数据,每个数据的格式会按照以下格式,并且在不同数据间不会有空行分割。所有字符都是大写的。
一个单独的测试数据包括3部分:
(1)开始行:单独的一行“START”。
(2)加密信息行:单独的一行,有1~200个字符组成来自Caesar的一行信息。
(3)结束行:单独的一行“ENF”。
最后,一组测试数据结束会跟着单独的一行“ENDOFINPUT”。
输出:
每个测试数据只会有一行输出,它是Caesar的原文。

#include<stdio.h>
#include<string.h>
int main(void)
{
    char a[100],b[100];
    int i;
    while(gets(a))
    {
        if(strcmp(a,"START")==0)
        {
            memset(b,0,sizeof(b));
        }
        else if(strcmp(a,"END")==0)
        {
            printf("%s",b);
        }
        else if(strcmp(a,"ENDOFINPUT")==0)
        {
            break;
        }
        else
        {
            for(i=0;a[i]!='\0';++i)
            {
                if(a[i]>='A'&&a[i]<='Z')
                {
                    b[i]=(a[i]-'A'+5)%26+'A';
                }
            }
        }
    }
    return 0;

}

或者对于输入ENDOFINPUT以结束程序,可以通过return 0;强行结束程序。

else if(strcmp(a,"ENDOFINPUT")==0)
{
    return 0;
}

将参数0传递给系统,告知系统程序需要结束。
巧妙利用return 0;

你可能感兴趣的:(有史以来最困难的题)