作业帮 > 综合 > 作业

c语言改错,小宇初学C语言,老师给他布置了作业,要求他按照字符所在的位置和固定的位移来在字母表中循环移动字母,来实现一个

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/17 01:50:05
c语言改错,
小宇初学C语言,老师给他布置了作业,要求他按照字符所在的位置和固定的位移来在字母表中循环移动字母,来实现一个简单的加密算法,可是他写了段程序,却始终达不到想要的结果,你能帮他修正一下程序中的错误么
#include "stdlib.h"
//--------------------------Do Not Modify Start---------------------
unsigned short hash(char* InStr){
\x09unsigned int len;
\x09unsigned short Crc16Table[256];
\x09unsigned int i,j;
\x09unsigned short Crc;
\x09for (i = 0; i < 256; i++){
\x09\x09Crc = i;
\x09\x09for (j = 0; j < 8; j++){
\x09\x09\x09if(Crc & 0x1)
\x09\x09\x09\x09Crc = (Crc >> 1) ^ 0xA001;
\x09\x09\x09else
\x09\x09\x09\x09Crc >>= 1;
\x09\x09}
\x09\x09Crc16Table[i] = Crc;
\x09}
\x09
\x09Crc=0x0000;
\x09len = 23;
\x09for(i=0; i> 8) ^ Crc16Table[(Crc & 0xFF) ^ InStr[i]];
\x09}
\x09//Crc ^= 0x0000;
\x09return Crc;
}
int check(char *pKey) {
\x09if(hash(pKey) == 0x248e)
\x09\x09return 1;
\x09else
\x09\x09return 0;
}
char kkk[]="odskrwheoilxzjweorukjfc";
#define MOVE 20
//--------------------------Do Not Modify End---------------------
void main() {
\x09char c;
\x09int i,j;
\x09for(i=0;i
j = (j+i-MOVE) % 26;
改为
if( j > MOVE )
j = (j - MOVE);
else
j = (j + 26 - MOVE);
再问: 结果运行??
再答: 原始字符串"odskrwheoilxzjweorukjfc"
加密之后是“ujyqxcnkuordfpckuxaqpli”
再问: 谢谢谢谢!!!!U2FsdGVkX1/Te0vXdQhwbWozKN88NJhWMyRzhA解密会吗?很急啊~~~~~~~~~~~~~~~~~~~~~~~~
再答: 你是要按照之前的程序解密吗?还是要按照别的算法?
原先的程序只支持字母。你这给的加密字符串还蹦出其它符号了。
再问: 不是之前的!另外一道题
再答: 完整的题目到底是什么???
这个U2FsdGVkX1/Te0vXdQhwbWozKN88NJhWMyRzhA是从哪里蹦出来的???
再问: 对他解密,别的没有了啊