Message Decoding 信息解码UVA 213
- #include
- #include
- char codes[8][1<<8]; //用于储存编码头字符集
- //char ch[1<<8];
- char readchar(){ //此函数由于读取非换行回车的字符
- for(;;){
- char ch=getchar();
- if(ch!=’\n’ && ch!=’\r’)return ch;
- }
- }
int readint(int c){ //用于读取长度为length的编码的十进制数值大小
- int temp=0;
- while(c—){
- char ch=readchar();
- temp=2*temp+ch-‘0’;
- }
- return temp;
- }
- int readcodes(){ //获取编码头,注意每次要清空数组
- memset(codes,0,sizeof(codes));
- codes[1][0]=readchar();
- char ch;
- for(int len=2;len<8;len++){
- for(int value=0;value<(1<<len)-1;value++){
- ch=getchar();
- if(ch==EOF)return 0;
- if(ch==’\n’ || ch== ‘\r’) return 1;
- codes[len][value]=ch;
- }
- }
- }
- int main(){
- while(readcodes()){
- // memset(ch,0,sizeof(ch));
- int count=0;
- int length;
- while((length=readint(3))!=0){
- for(;;){
- int len1=readint(length);
- if(len1==(1<<length)-1)break;//左移运算符优先级低于算术运算符
- //ch[count++]=codes[length][len1];
- putchar(codes[length][len1]);
- }
- }
- // puts(ch);
- putchar(‘\n’);
- }
- return 0;
- }
有一点不明白的是,为什么提交我注释的那些代码结果是错误的,对输出格式不是很清楚,希望知道的大牛们指导一下,谢谢
还没有评论,来说两句吧...