No sé qué le pasa a mi código C. ¡gas! ! ! ¡Llevo días investigando! ! !
¡Pero tu programa parece un poco complicado! Por cierto, lo investigué... y escribí un fragmento de código. ¡No sé si te conviene!
¡Solo por gramática!
Estudié una hora y solo saqué 50 puntos... No sé si me los darán. ~¡No sé si vale la pena!
De la siguiente manera: Se adjuntan los resultados de las pruebas.
# incluir ltstdio.h gt
# incluir ltconio.h gt
# incluir ltstring.h gt
char conver(char * buf);
char conver(char ch);
int sortA(char *buf, int nLen);
void main()
{
char buf[1024];
char ch
mientras(1)
{
printf("Por favor, introduzca el búfer...\ n ");
gets(buf
if(sortA(buf, strlen(buf)) == 0)
printf("Error\n ");
Otros
{
printf("¡Esto está bien!\nSi Quieres continuar, por favor presiona "Y"\n");
ch = getch();
if (ch!= 'Y' amp ampch!= 'y' )
Romper
}
}
}
int sortA(char *buf, int nLen; )
{
Temp de carácter[1024];
char ch
for(int I = 0; i ltnLeni) p >
{
if((ch=conver(buf[i])!= 0) //Toma un dígito
{
strcpy ( temp, buf);
temp[I]= ch;
If (sorta (temp, nlen)= = 1)//El bucle se llama a sí mismo de forma recursiva
<. p>{printf(" s- gt; s\n ", temp, buf
Devuelve 1
}
}
if(nLen == 3 amp; amp((ch = conver(buf))!= 0)) //Obtiene el resultado cuando la cadena == 3 dígitos
{
printf(" c- gt; s\n ", ch, buf
Devuelve 1
} p>
If(iltNLen-2) //Toma tres dígitos.
{
temp[3]= 0;
strncpy(temp, buf i, 3
if((ch); =conver(temp))! = 0)
{
strncpy(temp,buf,I);
temp[I]= 0; p> p>
sprintf(temp, "scs\0", temp, ch, buf I 3);
If (sorta (temp, nlen-2)== 1)//recursivamente llámate a ti mismo.
{
printf(" s- gt; s\n ", temp, buf);
Devuelve 1;
}
}
}
Devuelve 0
}
Carácter; conver(char *buf) //Conversión, solo 3 bits y 1 bit.
{
if(strcmp(buf," aSe))== 0)//S- gt; Bolsa de valores americana
Devuelve "S" ;
if(strcmp(buf," bBe))= = 0)//B- gt; Licenciatura en Educación Empresarial (abreviatura de Licenciatura en Educación Empresarial)
Regresar "B" ;
if(strcmp(buf," cCc ")== 0)//C- gt;Circuito de control de la consola
Devuelve "C";
Devuelve 0;
}
Convertidor de caracteres (canal de caracteres)
{
if(ch == ' B ') // S- gt; B
Devuelve "S";
if(ch == ' C ')//B- gt; ";
if(ch == ' d ')//C- gt; d
Devuelve "C";
Devuelve 0;
}
Información de prueba:
Por favor, introduzca el buffer...
abccdee
Incorrecto
p>
Por favor, introduzca un buffer...
abcdcee
s- gt;American Stock Exchange
aSe->;Abel p> p>
Abe- gt; Abi
Abby- gt; abCee
abCee- gt; abcCcee
ABC ccee- gt; /p>
¡No hay problema!
Si quieres continuar pulsa "Y"