Escolar Documentos
Profissional Documentos
Cultura Documentos
ATIVIDADE PRÁTICA
Solução do aluno:
#include<stdio.h>
#include<stdlib.h>
int menu(); //função do menu
void inserir(); //função inserir
void listar();//função listar
struct Lista { //estrutura heterogênea de dados
char musica[50], artista[50];
float duracao;
struct Lista* prox;
}*Head;
int main()
{
int continuar = 1;
Head = NULL;
do
{
printf("1.Inserir no inicio da lista \n");
printf("2.Listar\n" );
1
printf("0.Sair\n");
scanf_s("%d", &continuar);
system("cls || clear" ); //sempre limpar
switch (continuar)
{
case 1:
inserir();
break;
case 2:
listar();
break;
case 0:
return 0;
break;
default:
printf("Digite uma opcao valida \n");
}
} while (continuar);
}
int menu() {
int op, c;
system("Cls");
printf("1.Inserir no inicio da lista \n");
printf("2.Listar\n");
printf("0.Sair\n");
printf("Digite sua escolha: " );
scanf_s("%d", &op);
while ((c = getchar()) != '\n' && c != EOF) {} // limpar o
buffer do teclado.
system("Cls");
return op;
}
void inserir() {
Lista* NovoElemento;
NovoElemento = (struct Lista*) malloc( sizeof(struct
Lista)); // aloca espaço para
um bloco
printf("\nInserir nome da musica:" );
scanf_s("%s", NovoElemento->musica);
system("Cls");
printf("\nInserir nome do artista:" );
scanf_s("%s", NovoElemento->artista) ;
system("Cls");
printf("Inserir duracao da musica?" );
scanf_s("%f", &NovoElemento->duracao );
system("Cls");
if (Head == NULL) //se nulo insere na primeira posição
{
Head = NovoElemento;
Head->prox = NULL;
}
else
{//move o head para o proximo e inserir o novo na primeira
prosição
NovoElemento->prox = Head;
Head = NovoElemento;
}
}
void listar() { //listar
Lista* ElementoVarredura;
ElementoVarredura = (struct Lista*)malloc (sizeof(struct Li
sta));
ElementoVarredura = Head;
if (ElementoVarredura == NULL) {
printf("\n Lista vazia!" );
return;
}
while (ElementoVarredura != NULL) {
while (ElementoVarredura != NULL) {
printf("musica:%s\n ", ElementoVarredura->musica);
printf("artista: %s \n", ElementoVarredura->artista);
printf("duracao: %f \n", ElementoVarredura->duracao);
ElementoVarredura = ElementoVarredura->prox;
}
}
printf("\n");
system("pause");
system("cls || clear");
return;
}
#include<stdio.h>
#include<stdlib.h>
#include <string.h>
int main() {
//Deve-se armazenar o nome do aluno, seu e- mail e seu RU. Para o armazena-
mento utilize uma estrutura heterogênea de dados
Lista* ListaTemp = CriarLista(10);
int continuar = 1;
do
{
printf("1.buscar \n" );
printf("0.Sair\n");
scanf_s("%d", &continuar);
system("cls || clear" );
switch (continuar) //menu
{
case 1:
buscar(ListaTemp);
break;
case 0:
return 0;
break;
default:
printf("Digite uma opcao valida \n");
}
} while (continuar);
}
struct Lista* CriarLista(int qtd) //inicializa a lista
{
Lista* Lista = (struct Lista *)malloc( sizeof(struct Lista ));
Lista->qtd = qtd;
Lista->total = (struct Aluno** )malloc(qtd * sizeof(struct Aluno*));
printf("1.buscar \n");
printf("0.Sair\n");
int v;
for (v = 0; v < Lista->qtd; v++)
{
struct Aluno* ElementoVarredura = Lista->total[v];
while (ElementoVarredura != NULL);
{
if (ElementoVarredura->ru == num) { // mostra o aluno digitado na
busca
printf("nom e: %s\n ", ElementoVarredura->nome);
printf("ema il: %s\n ", ElementoVarredura->email);
printf("ru: %d\n ", ElementoVarredura->ru);
system("pau se");
system("Cls ");
}
ElementoVarredura = ElementoVarredura->prox;
}
printf("\n");
}
}