Por favor ayuda con un problema de programación.

Sí, ha sido depurado. No sé si esta es la función que solicitaste. Pruébelo:

# include & ltstdio.h & gt

# include & ltstring.h & gt

#Defina el número máximo de 20

estructura typedef {

char str 1[MAX_NUMBER];

char str 2[MAX_NUMBER];

int pos 1;

p>

int pos2

} crossStruct

cross struct cs[2];

int MakeCross(crossStruct *cs)

{

int i,j;

cs-& gt;pos 1 = 0;

cs-& gt;pos 2 = 0 ;

p>

for(I = 0;i<(int)strlen(cs->str 1);i++)

for(j = 0;j<( int)strlen (cs-& gt; str 2); j++)

if (cs-& gt; str 1[I]= = cs-& gt; str2[j])

{

cs-& gt; pos 1 = j;

cs-& gt; pos 2 = I

Devolver 1;

}

Devuelve 0;

}

void ShowCross()

{

int i, j, len11, len12, len21, len22

len 11 = strlen(cs[0]. str 1);

len 12 = strlen(cs[0]. str 2) ;

len 21 = strlen(cs[1].str 1);

len 22 = strlen(cs[1].str 2);

int altura = len 12 > len 12:len 22;

int ancho = len 11+len 21+3;

for(I = 0;i<height;i++)

{

for(j = 0; j & lt ancho; j++)

{

if(I = = cs[0]. pos 1 & amp; & ampj & ltlen11)printf("%c ", cs[0]. str 1[j]

else if(I & lt;len 12 & amp;& ampj==cs [0] .pos2)printf("%c ",cs[0]. str 2[I]);

si no(I == cs[1]. pos 1 & amp; & ampj & gt= len11+3.

& ampj & lt ancho)

printf("%c ",cs[1].str 1[j-3-len 11]);

else if(I & lt ;len22 & amp& ampj = = cs[1]. pos 2+len 11+3)printf(" % c ", cs[1]. str 2[I]); ");

}

printf(" \ n ");

}

}

nulo ShowCrossToFile(ARCHIVO *fp)

{

int i, j, len11, len12, len21, len22

len 11 = strlen(cs[0]. str 1);

len 12 = strlen(cs[0]. str 2);

len 21 = strlen(cs[1]. str 1);

len 22 = strlen(cs[1].str 2);

int altura = len 12>len22? len 12:len 22;

int ancho = len 11+len 21+3;

for(I = 0;i<height;i++)

{

for(j = 0; j & lt ancho; j++)

{

if(I = = cs[0]. pos 1 & & ampj & ltlen11)fprintf(fp, " %c ", cs[0]. str 1[j]

else if(I & lt;len 12 & amp;& ampj= =cs[0] .pos2)fprintf(fp, " %c ", cs[0]. str 2[I]

else if(I = = cs[1]. pos 1 & amp; & ampj &); gt=len11+3. & ampj & lt ancho)

fprintf(fp, " %c ", cs[1]. str 1[j-3-len 11]); p>else if(I & lt; len22 & amp& ampj = = cs[1]. pos 2+len 11+3)fprintf(FP, " %c ", cs[1]. str 2[ I]); /p>

else fprintf(fp, " ");

}

fprintf(fp, " \ n "); p>

}

void main(int argc, char *argv[])

{

if(argc== 1)

{

printf("Ingrese 4 cadenas:");

scanf("%s %s %s %s ", cs[0].str1, cs[0].str2, cs[1].str1, cs[1].str 2);

if(hacer cruz(&cs[0]) & amp;& amphacer cruz(& amp;cs[1]))show cross();

else printf("No se pueden hacer dos cruces.

\ n ");

}

Otros

{

char ipname[255], op name[255];

p>

int resultado = 1;

ARCHIVO *ifp, * ofp

strcpy(ipname, argv[1]);

if(argc ==2)

{

printf("Ingrese el nombre del archivo de destino:");

scanf("%s " ,nombre de operación);

}

else strcpy(nombre de operación, argv[2]);

ifp=fopen(nombre de ip, " r "); /p>

if(!ifp)

{

printf("Error al abrir el archivo %s.", nombre de IP

Return;

}

ofp=fopen(opname, " w ");

if (!ofp)

{

printf(" Error al crear el archivo %s. ", nombre de la operación);

return

}

mientras (!asociación de inversores extranjeros.& resultado)

p>

{

fscanf(ifp, " %s %s %s %s ", cs[0].str1, cs[0].str2, cs[ 1].str1, cs [1].str 2);

fprintf(ofp, " %s %s %s %s\n ", cs[0].str1, cs[0]. str2, cs[1].str1, cs[1]. str 2);

if(cs[1]. str R2[strlen(cs[1]. str 2)-1]= = ' # ')

{

cs[1]. str 2[strlen(cs[1]. str 2)-1]=

Resultado = 0;

p>

}

if(hacer cruz(& cs[0])& hacer cruz(& cs[1]))ShowCrossToFile(ofp);

else fprintf(ofp, "No se pueden realizar dos cruces. \n ");

fprintf(ofp, " ~-~ "); >

fclose(ifp);

fclose(ofp);

}

}