Enviado em 01/10/2015 - 22:16h
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// Declaração da estrutura produto, com 5 campos
struct produto {
int nro;
char desc[15];
float preco;
int estoque;
struct produto *prox;
};
typedef struct produto ListaProd;
// Função para iniciar a lista com o valor Nulo.
ListaProd* inicia(){
return NULL;
}
// Função para a inserção ordenada (por número) dos produtos
ListaProd* insereOrdem(ListaProd *l, int i, char nome[], float prc, int
est){
ListaProd *p=l, *ant=NULL;
// Alocação e inicialização de valores para o nó "novo".
ListaProd *novo = (ListaProd *) malloc (sizeof(ListaProd));
novo->nro = i;
strcpy(novo->desc, nome);
novo->preco = prc;
novo->estoque = est;
// Produto deve ser inserido no início da lista (primeiro ou inferior)
if (p == NULL || p->nro > i){
novo->prox = p;
return novo; }
else {
// Produto deve ser encadeado no meio (ou final) da lista
while(p!= NULL && p->nro <= i){
ant=p;
p=p->prox;
}
novo->prox = ant->prox;
ant->prox=novo;
return l;
}
}
// Função para exibir os produtos na tela
void imprime(ListaProd *l){
ListaProd *p;
for(p=l; p!=NULL; p=p->prox){
printf("\nNumero: %d",p->nro);
printf(" | Descricao: %s",p->desc);
printf(" | Preco: %.2f",p->preco);
printf(" | Estoque: %d",p->estoque); }
}
// Função principal
int main()
{
ListaProd *l;
int num, nro, est, op=0;
char desc[15];
float m, prc;
l = inicia();
do { system("cls");
printf(" \n\t-------- OPCOES -------- ");
printf(" \n\t1 - Inserir um novo produto ");
printf(" \n\t2 - Listar produtos ");
printf(" \n\t3 - Encerrar ");
printf(" \n\tOpcao: ");
scanf("%d",&op);
switch(op){
case 1: system("cls");
printf(" \n\n--- Novo produto --- ");
printf("\n Numero: ");
canf("%d",&nro);
printf(" Descricao: ");
scanf("%s",&desc);
printf(" Preco: ");
scanf("%f",&prc);
printf(" Estoque: ");
scanf("%d",&est);
l = insereOrdem(l, nro, desc, prc, est);
break;
case 2: system("cls");
printf("\n\n--- Lista de produtos --- \n");
imprime(l);
system("pause>>null");
break;
otherwise: printf(" Opcao invalida ");
}
} while (op != 3);
system("PAUSE>>null");
return 0;
}
Customizar a Instalação do Linux Debian com Preseed
Atualizando o Passado: Linux no Lenovo G460 em 2025
aaPanel - Um Painel de Hospedagem Gratuito e Poderoso
Um modo leve de ouvir/ver áudio/vídeo da internet em máquinas pererecas
Resolver algumas mensagens de erro do SSH
Instalar módulo de segurança do Banco do Brasil Warsaw do tipo .run
Instalação de Certificados .Cer no Ubuntu 24.04 (1)
Possível Migração de windows para linux ???? (pc da empresa) (2)
criar alias do comando "ls -la" (0)