Red de conocimiento informático - Conocimiento sistemático - Sistema de contabilidad de origen

Sistema de contabilidad de origen

Yuan también lo hizo. Escribí el código fuente y algunas notas, por lo que debería poder entenderlo y ejecutarlo. Escriba el código en resumen y luego proponga algunas ideas y decida algunas buenas escuelas C.

#Includes

#Includes

15

Definir M 15

Definir N etiqueta de estructura //definir El tipo de coordenadas de punto del laberinto.

{

Interpretación x;

;

}

Elemento estructural // Elemento de pila "Amor" . .

{

Entero x, y, // fila x, columna y

Entero d // La dirección de desarrollo futuro de D

};

Definición de tipo LStack // La estructura de la pila de cadena

{

ELEM;

Bajo la estructura de LStack ;

p>

} * PLStack

/* * * * * * * * * * *Función de pila* * * * * * * * * * * * * * *

Explicación de la pila de inicialización (pl stack s)//Construcción de una pila vacía

{

S = NULL

Return 1;

}

Explicación propiedad de la pila (pl stack S)//Determina si la pila está vacía.

{

Si (S == NULL) devuelve 1.

Otros

0;

}

gt explicación push (pl elemento de pila e) //Enviar nuevo elemento de datos.

{

pl pila P;

Malloc (tamaño (LStack)) donde P = (pl pila BR/>);

p->; Siguiente = S;

s = P;

Devolver 1

}

< p; >La pila de elementos s// en la parte superior de la pila PL.

{

pl pila p;

(atributo de pila)

{

gte = S- gt ;ELEM;

p = S;

S = S- gt;Abajo;

Libre(p);

Retorno 1 ;

}

Otros

Devuelve 0;

}

/* * * * * * * * * * * * * *Función de ruta de laberinto buscada* * * * * * * * * * * * * *

Ruta de laberinto no válida (inicio de etiqueta de estructura, final de etiqueta de estructura, laberinto [M] [N ], explicación de diradd [4] [2])

{

INT I, J, D, A, B;

ELEM, e;

S2 pl pila s 1;

pila inicial(s 1);

pila inicial(S2);

[inicio x. start . y]=//El laberinto marcado en el punto de entrada.

elem.x = inicio.x

elem .y = inicio .

elem d =-1; p>

elem. p>

push(S1, ELEM);

(!stack vacío(s 1)) // No hay ruta de pila separada.

{

(S1, ELEM) popularidad;

= elem.x

J = elem.y

d = elem . d 1; //dirección hacia abajo

y (d)

{

a = I diradd[D][0 ];

b? = J diradd[D][1];

(= = end.x amp amp amp amp amp laberinto[A][B]= = 0)//Salir

{

elem . x =;

elem . y = J

elem.d = D

Push(s 1 ELEM);

elem.x =

elem . y = B;

Elem.d = 886, // La dirección de salida -1 determina si se exporta.

push(s1,elem);

printf("\n0=este=sur=oeste=laberinto del norte 886\n\nRuta: (coordenadas de fila y coordenadas de columna, Dirección )\n"); ltBR/(S1), //Ir a casa. Secuencia y secuencia de ruta del laberinto de salida

{

Hot(S1, electron);

Push(S2, e);

}

Y (S2) {

Popular (S2, comercio electrónico);

printf("->; (d, d, d) "antes, EY, editor);

}

Return; //Dos bucles, original y avance, pero si se encuentra un error, salir finalizará el programa, así es sigue siendo una buena opción devolver O ( ∩ _ ∩)O. ...

}

(Maze[A][B]= = 0)//Encuentra la no salida del punto anterior.

{

Laberinto[A][B]= 2//Mark ha pasado este punto.

elem . x = I;

elem y = J

elem.d = D

Empujar(S1, ELEM ); //Apilar en la posición actual

I = A; //Un punto convierte el punto actual

j = B;

d =-1 ;

}

D

}

}

Printf's ("No se ha encontrado ninguna salida a este laberinto \ n ");

}

/a gt;

/* * * * * * * * * * * *Construye un laberinto* * * * * * * * * * * * * *

initmaze(INT laberinto [M] [N]) no es válido

{

INT I, J ;

p>

INT M, N; //Fila, columna del laberinto

Printf("Ingrese el número del laberinto M = ");

('scanf is d' , m;

Printf's("Ingrese el número de columnas en el laberinto N = ");

scanf's (' d ', n);

printf ("\nPor favor ingrese la fila y columna del laberinto:\nNo.

1, separado por espacios, representa la Gran Muralla\ n ", m, n);

Es (I = 1; lt= M)

(J = 1; lt = N; J )

Función Scanf (" d ", y laberinto[I][J]);

Printf's ("El laberinto que construiste es O(∩_∩) o...\ n ");

(I = 0 lt= M 1, i)//Agrega una pared.

{

Laberinto[ I][0]= 1;

Laberinto[I][N 1]= 1;

}

(J = 0; lt= N 1 ; J )

{

Laberinto[0][J]= 1;.../ gt;Laberinto[M 1][J]= 1;

}

(I = 0; i lt= M 1, i)//Laberinto de salida

{ BR/ gt; (J = 0; lt= N 1;J )

Printf ("d",laberinto[I][J]);

printf("\n");

}

}

Invalid main()

{

Explicación STO[M][N];

Etiqueta de estructura inicio y end; //Inicia y completa la coordinación de entrada y salida

Adición de anotaciones[4][2] = {{0, 1}, {1, 0}, {0, -1}, {-1, 0 } }; //La dirección del incremento de fila y de columna, desde el sur, norte, este, oeste

init maze(STO); p>printf("Ingrese la abscisa y la ordenada de la entrada [separadas por comas\n");

("d, d", start.x y start.y) scanf

() de printf ingresa la coordenada de abscisa de salida, coordenadas [separadas por comas]\n ");

(" d mes d día", end.x y end.y ) scanf

MazePath(punto de inicio, punto final, STO Express, agregar); //Encontrar la ruta

Sistema ("pausa");

}