#include
#include
int main()
{
int num,i,n,t,temp,len,j,r,q;
char a[10][100000];
char output[10][400000];
char output2[10][100000];
scanf("%d",&n);
for(i=0;i {
scanf("%s",a[i]);
len=strlen(a[i]);
for(j=0;j {
if(a[i][j]='0')
t=a[i][j]-'0';
else t=a[i][j]-'A'+10;
temp=(j+1)*4;
num=4;
while(num--)
{
output[i][--temp]=t%2;
t/=2;
}
}
j=(len*4)-1;
q=(len*4+2)/3 - 1;
r=q;
output[i][j+1]='\0';
for(;j>=0;j-=3)
{
if(j>=2)
output2[i][q--] = (output[i][j-2]*4+output[i][j-1]*2+output[i][j])+'0';
else if (j==1)
output2[i][q--] = (output[i][j-1]*2+output[i][j])+'0';
else if (j==0)
output2[i][q--] = output[i][j]+'0';
}
}
for(i=0;i<n;i++)
{
j=0;
if( output2[i][j]=='0')j++;
for(;j<=r;j++)
{
if( output2[i][j]=='0')
printf("0");
else
printf("%c", output2[i][j]);
}
printf("\n");
}
return 0;
}
求大神指点 小弟感激不尽!!!!
char a[10][100000];
char output[10][400000];
char output2[10][100000];
申请的数组空间太大了。。已经超出堆栈了。。
你这申请的空间就不能小一点嘛。。