开发平台(Platform): (Ex: VC++, GCC, Linux, ...)
DEV C++
额外使用到的函数库(Library Used): (Ex: OpenGL, ...)
string.h
问题(Question):
我正在作练习题 题目是这样的
第二次世界大战中,德军的通讯编码被美国破解,以致于机密被美国窃听而惨败。德军的
编码规则(假)如下:将讯息每个字母往后推两位再传出去,例如 A→C、B→D,而后面的
Y→A、Z→B,所有的讯息都是大写字母。而收到讯息的则是将每个字母往前推两位,例
如 C→A、D→B,而前面的 A→Y、B→Z。假设你是美军的情报军,要快速编码及解码德军
的讯息,希望完成一个程式,第一个字符为 + 代表要编码,第一个字符为 - 代表要解码
,程式执行如下(粉红色为输入、浅蓝色为输出):
目前输出的时候虽然可以成功输出可是却会出现一堆奇怪的东西
喂入的资料(Input):
+ABCD
预期的正确结果(Expected Output):
CDEF
错误结果(Wrong Output):
拍照上传了
http://imgur.com/jESJ9AW
程式码(Code):(请善用置底文网页, 记得排版)
#include <stdio.h>
#include <string.h>
/* run this program using the console pauser or add your own getch,
system("pause") or input loop */
int main() {
int i;
char code[80];
gets(code);
if(code[0]=='+')
{
for(i=1;i<=strlen(code);i++)
{
code[i]=code[i]+2;
if(code[i]>'Z') code[i]=code[i]-26;
}
}
if(code[0]=='-')
{
for(i=1;i<=strlen(code);i++)
{
code[i]=code[i]+2;
if(code[i]<'A') code[i]=code[i]+26;
}
}
printf("%s \n",code+1);
}
补充说明(Supplement):
我是新手
用范例的程式码就没问题 不晓得问题出在哪