Chinaunix首页 | 论坛 | 博客
  • 博客访问: 550317
  • 博文数量: 65
  • 博客积分: 1158
  • 博客等级: 少尉
  • 技术积分: 1261
  • 用 户 组: 普通用户
  • 注册时间: 2012-07-18 22:07
文章分类

全部博文(65)

文章存档

2016年(1)

2014年(2)

2013年(9)

2012年(53)

分类: C/C++

2012-11-25 21:49:24

/*
Description 
恺撒时代充满了动荡和危险,恺撒为了保证在战争中传递秘密消息,发明了一种密码。
他在所有的信件中将所有的字符按字母顺序向后移动了5个位置(比如说,原文中是A,那么密信中就为F),
密信中字母和原文中字母的对应关系如下:
密文: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 
只有字母被替换,而且所有字母都是大写的。


输入:

第一行是一个整数K,表示有多少个测试用例,以后每行一个测试用例。
每行为一个字符串(长度不超过1000个字符)。


输出:

每行输出一个测试用例的结果。
 
  
Sample Input  
3
NS BFW, JAJSYX TK NRUTWYFSHJ FWJ YMJ WJXZQY TK YWNAN\0FQ HFZXJX
N BTZQI WFYMJW GJ KNWXY NS F QNYYQJ NGJWNFS ANQQFLJ YMFS XJHTSI NS WTRJ
IFSLJW PSTBX KZQQ BJQQ YMFY HFJXFW NX RTWJ IFSLJWTZX YMFS MJ 
  
Sample Output  
IN WAR, EVENTS OF IMPORTANCE ARE THE RESULT OF TRIVIAL CAUSES
I WOULD RATHER BE FIRST IN A LITTLE IBERIAN VILLAGE THAN SECOND IN ROME
DANGER KNOWS FULL WELL THAT CAESAR IS MORE DANGEROUS THAN HE 
*/


点击(此处)折叠或打开

  1. # include <stdio.h>

  2. int main(void)
  3. {
  4.     char input[1010];
  5.     int cases,i,k;

  6.     scanf("%d",&cases);

  7.     getchar(); // 必须加一个这个语句

  8.     while(cases--)
  9.     {
  10.         i = 0;
  11.         k = 0;
  12.         
  13.         for(k=0;input[k-1]!='\n';k++) //input[-1]严格来说属于数组越界 但C在这方面的处理没有java严格
  14.         {
  15.             input[k] = getchar(); // 这里考试系统必须这样做 因为它允许可以输出\0
  16.              //但是这样还是一行输入一个字符串么?坑爹呢、、、
  17.         }

  18.         while( i<k-1 )
  19.         {
  20.             if( input[i] >= 'F' && input[i] <= 'Z')
  21.             {
  22.                 printf("%c",input[i] - 5);
  23.                 i++;
  24.             }
  25.             else
  26.             {
  27.                 if( input[i] >= 'A' && input[i] <= 'E' )
  28.                 {
  29.                     printf("%c",input[i] + 21);
  30.                     i++;
  31.                 }
  32.                 else
  33.                 {
  34.                     printf("%c",input[i]);
  35.                     i++;
  36.                 }
  37.             }
  38.         }

  39.         printf("\n");
  40.     }
  41.     return 0;
  42. }

  43. /*
  44. ==================================================
  45. 3
  46. NS BFW, JAJSYX TK NRUTWYFSHJ FWJ YMJ WJXZQY TK YWNANFQ HFZXJX
  47. IN WAR, EVENTS OF IMPORTANCE ARE THE RESULT OF TRIVIAL CAUSES
  48. N BTZQI WFYMJW GJ KNWXY NS F QNYYQJ NGJWNFS ANQQFLJ YMFS XJHTSI NS WTRJ
  49. I WOULD RATHER BE FIRST IN A LITTLE IBERIAN VILLAGE THAN SECOND IN ROME
  50. IFSLJW PSTBX KZQQ BJQQ YMFY HFJXFW NX RTWJ IFSLJWTZX YMFS MJ
  51. DANGER KNOWS FULL WELL THAT CAESAR IS MORE DANGEROUS THAN HE
  52. Press any key to continue
  53. ==================================================
  54. */


阅读(1186) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~