Por favor ayuda con un problema de programación.
# 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; p>
}
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>
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]= = ' # ') p>
{
cs[1]. str 2[strlen(cs[1]. str 2)-1]=
Resultado = 0;
p>}
if(hacer cruz(& cs[0])& hacer cruz(& cs[1]))ShowCrossToFile(ofp); p >
else fprintf(ofp, "No se pueden realizar dos cruces. \n ");
fprintf(ofp, " ~-~ "); >
fclose(ifp);
fclose(ofp);
}
}