Hola, veo diferentes cosas extrañas en tu código, por ello te recomendaría que sigas paso a paso el Curso básico de programación lenguaje C desde cero para aclarar los conceptos, lo tienes disponible en
https://aprenderaprogramar.com/index.php?option=com_content&view=category&id=82&Itemid=210. Entre las cosas que no me cuadran:
- Declaras un array bidimensional y tratas de usar elementos de un array unidimensional (char estado[MAX_STRLEN][36]; y luego estado[1] == "Aguascalientes"

- No usas correctamente los índices de los arrays
- No usas correctamente los operadores. = no es lo mismo que ==
- No manejas correctamente los strings con funciones de la librería string.h. La asignación de una cadena de texto a un array de caracteres no se hace como se hace con variables numéricas. estado[1] == "Aguascalientes"; no tiene sentido o al menos no tiene el sentido que se deduce que quiere que tengas.
- No usas formato de código adecuado ( scanf("%i",&num); )
Fruto de todo ello el programa devuelve numerosos warning del tipo
warning: statement with no effect [-Wunused-value]|
warning: comparison with string literal results in unspecified behavior [-Waddress]
y muestra un comportamiento que no es el esperado. Como te he comentado, siguiendo el curso podrás aclarar todos los conceptos.
Nota: array es lo mismo que arreglo, unas personas usan una forma y otras la otra.
Saludos