Ep1 2012
#include
#include
#include
struct cel { int integrante; int sua_turma; struct cel *prox; };
typedef struct cel celula;
void insere (int x, int y, celula *p)
{
celula *nova; nova = malloc (sizeof (celula)); nova->integrante = x; nova->sua_turma = y; nova->prox = p->prox; p->prox = nova;
}
celula *busca_integrante (int x, celula *ini)
{
celula *p; p = ini->prox; while (p != NULL && p->integrante != x) p = p->prox; return p;
}
celula *busca_turma (int x, celula *ini)
{
celula *p, *q; p = ini->prox; q = ini; while (p != NULL && p->sua_turma != x){ q = p; p = p->prox;} while (p != NULL && p->sua_turma == x){ q = p; p = p->prox;} return q;
}
void remover (celula *p)
{
celula *morta; morta = p->prox; p->prox = morta->prox; free (morta);
}
void imprima (celula *ini)
{
celula *p; for (p = ini->prox; p != NULL; p = p->prox){ printf ("%d ", p->sua_turma); printf ("%d\n", p->integrante);}
}
int main()
{
celula *ini, *p, *fila, *end_m, *f_t; fila = malloc (sizeof (celula)); fila->prox = NULL; fila->integrante = 0; ini = malloc (sizeof (celula)); ini->prox = NULL; ini -> integrante =0; p = ini;
FILE *arq; char *tr_int, *result, *cmm; char Linha [100]; int i, k=0, n_turmas=100, turma, pessoa, m, e_s;
arq = fopen("t2", "rt"); if (arq == NULL) { printf("Problemas na abertura do arquivo\n"); return 0; } i = 1; while (iprox; } } i++; } while (!feof(arq)) { result = fgets (Linha, 100, arq); cmm = strtok (Linha, " \n"); if (*cmm == 'E'){ e_s = 1; } if (*cmm == 'S'){ e_s = 2; } if (*cmm == 'F'){ e_s = 3; } cmm = strtok (NULL, " "); m = atoi (cmm);