杭电ACM2265Encoding The Diary

来源:百度知道 编辑:UC知道 时间:2024/05/16 14:24:41
#include <iostream>
using namespace std;
int main()
{
char a[300],b[300];
while(gets(a+1))
{

int d=1;
int m=strlen(a);
for(int i=1;i<=m;i++)
if(a[i]!=' ')
b[d++]=a[i];
b[d]='\0';
m=strlen(b)-1;
for(i=1;i<=m;i++)
if(i%3==0)
{
cout<<b[i];
b[i]=' ';
}

for(i=1;i<=m;i++)
if(i%2==0&&b[i]!=' ')
{
cout<<b[i];
b[i]=' ';
}

for(i=1;i<=m;i++)
if(b[i]!=' ')
cout<<b[i];
cout<<endl;
}
return 0;
}
总WA啊,高手指点下

strlen(a)

既然你gets(a+1),那最好还是strlen(a+1)保险一点,vc未初始化的字符是-52,但hdu上的编译器,未初始化的字符就不知道是多少了,如果是0,那就不好了

反正将m=strlen(a);和m=strlen(b)-1;改成
m=strlen(a+1);和m=strlen(b+1);就能AC了