¡Problema de Acm que se puede probar con éxito en c-free pero no en ac!
#includelt;string.hgt;
int?main()
{
int? z[27]={0};
int?t;
char? str2=NULL,
str3[3]={NULL};/ /2?--gt;?3
char?str1[6];?//?5--gt;6
int?l;
int?T;
scanf("d", y T
mientras(Tgt; 0)
{
scanf("s?str2, amp; str3);
l=strlen(str3);
if(strcmp(str1, "mov")==0) p>
{
if(('a'-'0')?lt;=?(str3[0]-'0')amp;amp;(str3[0]-' 0')? lt;=?('z'-'0'))
{
z[str2-'a']=z[str3[0]-' a'];
}
¿otra cosa?
{
if(l==2)
t=(str3[0]-'0')*10 str3[1]-' 0';
else
t=str3[0]-'0';
z[str2-'a']=t;
}
}
else?if(strcmp(str1, "añadir ")==0)
{
if(('a ' - '0')? lt;=?(str3[0]-'0')& ; (str3[0]-'0')? lt;=?('z'-'0'))
{
z[str2-'a'] = z [str3[0]-'a'];
}
¿otra cosa?
{
if(l==2 )
t=(str3[0]-'0')*10 str3[1]-'0';
más
t=str3[ 0 ]-'0';
z[str2-'a'] =t;
}
}
¿si no? (strcmp(str1, "sub")==0)
{
if(( 'a'-'0')? lt; =?(str3[0] - '0')amp;amp;(str3[0]-'0')? lt;=?('z'-'0'))
{
z [ str2-'a']-=z[str3[0]-'a'];
}
¿otra cosa?
{
if(l==2)
t=(str3[0]-'0')*10 str3[1]-'0';
else p >
t=str3[0]-'0';
z[str2-'a']-=t
}
}
else?if(strcmp(str1,
"print")=0)
{
printf("d\n",z[str2-'a']);
}
str1[5]=NULL;
str2=NULL;
str3[2]=NULL; /p>
}/¿Gran bucle?
return?0;
}
Ya sabes, en lenguaje C, cuando almacenas una cadena en una matriz, debes finalizar la cadena Reservar un lugar por 0?
En otras palabras, al almacenar la cadena "print", es necesario abrir una matriz con una longitud de 6. Los caracteres almacenados en la matriz son
'p' ? ' ?' i' ?' n' ?' t' ?\0'
'\0' es el final de la marca de cadena.
Cambiar el tamaño de la matriz pasará.