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;
}
Passkeys: A Evolução da Autenticação Digital
Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla
Título: Descobrindo o IP externo da VPN no Linux
Armazenando a senha de sua carteira Bitcoin de forma segura no Linux
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Instalando Brave Browser no Linux Mint 22
vídeo pra quem quer saber como funciona Proteção de Memória:
Encontre seus arquivos facilmente com o Drill
Mouse Logitech MX Ergo Advanced Wireless Trackball no Linux
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
VMs e Interfaces de Rede desapareceram (12)
Instalação do drive do adaptador wiffi (7)