baralho

Run Settings
LanguageC
Language Version
Run Command
/* Em um determinado jogo de cartas, cada jogador deve retirar 5 cartas do monte e segurá-las em suas mãos. Contudo, a ordem de descarte deve ser a mesma ordem em que as cartas foram retiradas do monte. Considerando a imagem exemplificativa acima, implemente um algoritmo, utilizando estruturas de dados dinâmicas, capaz de representar a situação exposta: as cartas, inicialmente presentes no monte, devem ser armazenadas nas mãos do usuário e, em seguida, descartadas (seguindo as regras anteriormente mencionadas). */ /* grupo: Allan Cherre, Luis Henrique, Rodrigo Gonçalves */ #include <stdio.h> #include <stdlib.h> // estrutura do baralho typedef struct stru { int carta; struct stru *prox; } baralho; // ponteiros baralho *p, *q=NULL, *top=NULL; // coloca informações na pilha void push(int val) { p = (baralho *) malloc(sizeof(baralho)); p->carta = val; p->prox = top; top = p; q = p; } // remove valores da pilha, envia para um vetor e liberar esse valor int popn() { p = top; top = p->prox; int val = p->carta; free(p); return val; } void main() { int n, tam=4; // recebe valores for(int i=0; i<5; i++) { scanf("%d", &n); printf("carta retirada %d\n", n); push(n); } printf("\n"); int lista[tam], i=0; // monta um vetor for(;i<=tam;i++) lista[i] = popn(); // imprime valores for(i=tam; i>=0; i--) printf("%d descartado\n", lista[i]); printf("cartas descartadas\n"); // libera os ponteiros free(top); }
Editor Settings
Theme
Key bindings
Full width
Lines