求大神用c语言帮我做一下这道题,定义十进制的数字和字母一个对照关系,'A'对应0,'B'对应1...依次类推.26-'A' 27-'B'28-'C' 29-'D' 30-'E' 31-'F'每个十进制的整数用五位二进制数来表示,比如1用00001表示,

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/19 07:21:41
求大神用c语言帮我做一下这道题,定义十进制的数字和字母一个对照关系,'A'对应0,'B'对应1...依次类推.26-'A' 27-'B'28-'C' 29-'D' 30-'E' 31-'F'每个十进制的整数用五位二进制数来表示,比如1用00001表示,
xV[OG~@T`Sl[KD/JU$bæ`;^R)B%P5TA IDO =jVCؙ3{w{û֎H_ҾWϴ²:Jy8]?Z9{Sm(sjq8U-"_`:$u'A7jQW EO0?d3Rb'q.KtO[tuhĜdƎD*bxT2k g3qS'XqH aDYuffVeM8z/Qq|nbOSd%my&I|\ۉ߂8O8q1mh;퐝~˂x#hl 7E0뎅:rg aw9o\ ߢJw)soVm#w I&FۄqNc׷no3B},M 1)=ʦIb. &ߍI" ~;A q`p<(KX<#,2a G2‰"N|gR`@ qJT<̱@i*DXPtV[BL.a "M92^:Bbi8"(E{{U%hsEnmBy}ӊi.iA

求大神用c语言帮我做一下这道题,定义十进制的数字和字母一个对照关系,'A'对应0,'B'对应1...依次类推.26-'A' 27-'B'28-'C' 29-'D' 30-'E' 31-'F'每个十进制的整数用五位二进制数来表示,比如1用00001表示,
求大神用c语言帮我做一下这道题,
定义十进制的数字和字母一个对照关系,'A'对应0,'B'对应1...依次类推.26-'A' 27-'B'28-'C' 29-'D' 30-'E' 31-'F'
每个十进制的整数用五位二进制数来表示,比如1用00001表示,2用00010表示,依次类推
现有一个字符串的游戏,规则如下:如果看到的是数字0,则随机的翻译为一个大写的字母,如果看到的是数字1,
则随机的翻译为0~9之间的一个数字.如:00010可翻译为ABC1D或者JUG9N等.
游戏开始的时候,输入一串字符串,该字符串是由数字(0,1)和字符组成的.
请按照以上的推则反向将字符串翻译成1和0组成的二进制数字,并以5位二进制位一组,将这5个二进制转换成十进制,输出十进制数字对应的字母.
例如:
输入:
0N1E2H5Q39AK2TGIC9ERT39B2P423L8B20D
输出:FLEENOW

求大神用c语言帮我做一下这道题,定义十进制的数字和字母一个对照关系,'A'对应0,'B'对应1...依次类推.26-'A' 27-'B'28-'C' 29-'D' 30-'E' 31-'F'每个十进制的整数用五位二进制数来表示,比如1用00001表示,
int decode(char *buf)
{
int ret = (buf[0] - '0') << 4 | (buf[1] - '0') << 3 | (buf[2] - '0') << 2 | (buf[3] - '0') << 1 | (buf[4] - '0');
return ret;
}



int main(int argc,char *argv[])
{
printf("请输入字符串\n");
char inputBuf[256] ;

char outputBuf[256] = {0};
scanf("%s",inputBuf);

int i;
for(i=0;i<strlen(inputBuf);i++)
{
if(inputBuf[i] >= 'A' && inputBuf[i] <= 'Z')
{
inputBuf[i] = '0';
}
else if(inputBuf[i] >= '0' && inputBuf[i] <= '9')
{
inputBuf[i] = '1';
}
}

printf("输出:%s\n",inputBuf);

int off = 0;
int num;
for(i=0;off < strlen(inputBuf);i++,off+=5)
{
num = decode(inputBuf+off);
outputBuf[i] = num % 26 + 'A';
}

outputBuf[i] = '\0';

printf("输出:%s\n",outputBuf);
return 0;
}

第一个字符是大写字母才会出现这样的结果