0
When it comes to printing, they are somehow superimposed. I have no idea what it might be. The FOR is strange because it is necessary that Tsala data[FLOOR][ROOM][TURN] be this way and in that order.
//importação de bibliotecas
#include <stdio.h>
#include <string.h>
//definição de constantes
#define ANDAR 1
#define SALA 1
#define TURNO 2
//declaração de tipos
typedef struct {
int status, periodo;
char curso[50];
} TSala;
//definição dos protótipos
void leituraDados (TSala dados[ANDAR][SALA][TURNO]);
//main
void main ()
{
//declaração de variáveis
TSala dados[ANDAR][SALA][TURNO];
//preenchendo o vetor
leituraDados (dados);
}
//implementações das funções
void leituraDados (TSala dados[ANDAR][SALA][TURNO])
{
//declaração de variáveis
int i, j, h;
//3 for percorrendo todos os dados da matriz
for (i=0; i<=ANDAR; i++)
{
for (j=0; j<=TURNO; j++)
{
for (h=0; h<=SALA; h++)
{
printf("\nInforme o Status do Andar %d, Turno %d, Sala %d: ", i+1, j, h+1);
scanf("%d", &dados[i][h][j].status);
printf("\nSTATUS = %d\n", dados[i][h][j].status);
//Caso a sala esteja com o status alocada (status=1) irá receber as informações da mesma
if (dados[i][h][j].status == 1)
{
fflush (stdin);
printf("\n----- Informe o Curso do Andar %d, Turno %d, Sala %d: ", i+1, j, h+1);
gets (dados[i][h][j].curso);
printf("\nCURSO = %s\n", dados[i][h][j].curso);
printf("\nI(ANDAR)= %d | J(TURNO)= %d | H(SALA)= %d", i, j, h);
printf("\n----- Informe o Periodo do Andar %d, Turno %d, Sala %d: ", i+1, j, h+1);
scanf("%d", &dados[i][h][j].periodo);
}
}
}
}
for (i=0; i<=ANDAR; i++)
{
for (j=0; j<=TURNO; j++)
{
for (h=0; h<=SALA; h++)
{
if (dados[i][h][j].status == 1)
{
printf("\nCURSO = %s\n", dados[i][h][j].curso);
}
}
}
}
}