这个题目就是让你找字符间空格的数量 偶数的为1 奇数为0 然后转化二进制 而后编程10进制 找出对应的符号即可
下面就是题目的源代码
#include<stdio.h>
#include<iostream>
#include<string.h>
#include<math.h>
using namespace std;
char a[100000];
char s[2000];
int begin;
void fun(int b,int e){ //二进制转化10进制 并且找出对应的字符
char tmp[10];
for(int i=0;i<=4;i++){
tmp[i]=a[e--];
}
int sum=0,cheng=1;
for(int i=0;i<=4;i++){
if(i==0)cheng=1;
else cheng=cheng*2;
if(tmp[i]=='1')sum+=cheng;
}
if(sum==0)printf(" ");
char alph='A';
if(sum>=1&&sum<=26)printf("%c",alph+sum-1);
if(sum==27)printf("'");
if(sum==28)printf(",");
if(sum==29)printf("-");
if(sum==30)printf(".");
if(sum==31)printf("?");
}
int main()
{
while(1){
begin=1;
while(gets(s)){
if(s[0]=='*'){goto ex;}
if(s[0]=='#'){goto end;}
int len=strlen(s);
int i=0;
while(i<len){ //空格数量统计,并且判读奇偶,变成二进制
if(s[i]!=' ')i++;
else{
int sum=0;
while(s[i++]==' ') {
sum++;
}
if(sum%2==0)a[begin++]='1';
else a[begin++]='0';
}
}
}
ex:;
begin--;
while(begin%5!=0){
a[++begin]='0';
}
int n=begin/5;
for(int i=1;i<=n;i++){
fun(1+(i-1)*5,5*i);
}
printf("\n");
}
end:;
return 0;
}