Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdlib.h>
- #include <stdio.h>
- #include <string.h>
- typedef struct _meia meia;
- struct _meia {
- char tipo_meia[7];
- meia *prox;
- };
- meia* cria_lista(void) {
- return NULL;
- }
- meia* insere_meia(meia* lista, char *tipo) {
- meia* novo = (meia*) malloc(sizeof(meia));
- strcpy(novo->tipo_meia, tipo);
- novo->prox = lista;
- return novo;
- }
- meia* retira_meia(meia* lista, char *tipo) {
- meia *p, *aux, *ant, *post;
- aux = lista;
- while (ant != NULL && (strcmp(ant->prox->tipo_meia, tipo) != 0)) {
- ant = ant->prox;
- }
- for (p = lista; p != NULL; p = p->prox) {
- if ((strcmp(p->tipo_meia, tipo)) == 0) {
- ant->prox = p->prox;
- }
- }
- return ant;
- }
- int procura_meia(meia* lista, char tipo[7]) {
- meia* p;
- for (p = lista; p != NULL; p = p->prox) {
- if ((strcmp(p->tipo_meia, tipo)) == 0) {
- return 1;
- }
- }
- return 0;
- }
- int lista_vazia (meia* lista) {
- return (lista == NULL);
- }
- int quantidade_meia(meia* lista) {
- int contador = 0;
- meia* p;
- if(lista_vazia(lista)) {
- return 0;
- }
- else{
- for (p = lista; p != NULL; p = p->prox) {
- contador++;
- }
- return contador;
- }
- }
- void lista_imprime(meia* lista) {
- meia* p;
- for (p = lista; p != NULL; p = p->prox) {
- printf("meia = %s\n", p->tipo_meia);
- }
- }
- int main() {
- int N, i, aux;
- int meia_sem_par;
- meia* lista;
- char string[7];
- scanf("%d", &N);
- lista = cria_lista();
- for (i = 0; i < N; i++) {
- scanf("%s", string);
- aux = procura_meia(lista, string);
- if(aux == 1){
- lista = retira_meia(lista, string);
- }
- else if(aux == 0){
- lista = insere_meia(lista, string);
- }
- }
- meia_sem_par = quantidade_meia(lista);
- if (meia_sem_par > 0) {
- printf("%d PE(S) SEM PAR\n", meia_sem_par);
- }
- else if (meia_sem_par == 0) {
- printf("TODOS OS PARES ESTAO COMPLETOS\n");
- }
- lista_imprime(lista);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement