Ir ao conteúdo
  • Cadastre-se

Gustavo Rossy

Membro Júnior
  • Posts

    4
  • Cadastrado em

  • Última visita

Reputação

2
  1. Beleza galera? Então, estou fazendo um trabalho cujo meu objetivo é pensar em algum problema que seja resolvido com uma lista de structs. No código a seguir vocês podem perceber que minha struct armazena somente dois dados, peso e nome. Meu problema está surgindo na parte de armazenar e/ou mostrar o nome armazenado... Quando peço para ver o nome armazenado só mostra alguns simbolos... Alguem sabe o que está errado? Desde já, agradeço imensamente! Segue o código: Obs: Para a entrada do nome estou usando o scanf("%s", &x) só para testes. Quando estiver funcionando passarei para o gets. #include <stdio.h> #include <stdlib.h> struct lista{ char nome[30]; float peso; struct lista *proximo; }; typedef struct lista slista; slista *inserir_inicio(slista *inicio, char x[30], float y){ slista *novo; novo=(slista *) malloc(sizeof (slista)); novo->nome[30]=x[30]; novo->peso=y; novo->proximo=inicio; return novo; } void imprimir(slista *inicio, char x[30]){ slista *aux=inicio; while (aux->nome!=x){ aux=aux->proximo; } printf("\nNome: %c", aux->nome); printf("\nPeso: %f", aux->peso); } void imprime(slista *inicio){ slista *aux= inicio; while (aux!=NULL){ printf("\n%s", aux->nome); printf("\n%f\n", aux->peso); aux=aux->proximo; } } int main(){ slista *inicio=NULL; int menu; float y; char x[30]; do{ system("cls"); printf("\n\t\t****MENU****\n"); printf("\n1. Insercao de um novo elemento no inicio da lista"); printf("\n2. Impressao de um elemento da lista"); printf("\n3. Impressao de todos os elementos da lista"); printf("\n4. Exclusao do primeiro elemento da lista"); printf("\n4. Exclusao de toda a lista"); printf("\n5. Sair"); printf("\nOpcao: "); scanf("%i", &menu); if (menu==1){ printf("\nDigite o nome: "); scanf("%s", &x); printf("\nDigite o peso: "); scanf("%f", &y); inicio=inserir_inicio(inicio,x,y); printf("\nInserido com sucesso! "); system("pause"); } else if (menu==2){ printf("\nDigite o nome de quem devera ser impresso: "); scanf("%s", &x); imprimir(inicio, x); system("pause"); } else if (menu==3){ imprime(inicio); system("pause"); } else if (menu==5) return 0; else { printf("\nOpcao incorreta! "); system("pause"); } }while (1); return 0; }
  2. Muito obrigado @isrnick, me ajudou demais seu comentário!
  3. Olá pessoal, estou cursando programação de computadores na faculdade e meu professor nos passou um exercicio que diz o seguinte: "Escreva um programa para uma empresa de transportes aéreos que permita controlar a reserva de poltronas de uma aeronave." O exercício completo está em anexo. Meu professor disse que se quiser fazer apenas com um vetor[20] também pode. Comecei a criar uma função para cada opção do menu, mas minha dificuldade aparece quando eu tento criar um vetor que inicialmente printa o numero de cada poltrona e se caso ele for selecionado apareça um X no lugar dele. Aqui está o código que comecei a criar: #include <stdio.h> #include <stdlib.h> char p[20]={49,50,51,52,53,54,55,56,57,'A','B','C','D','E','F','G','H','I','J','K','L'}; void mostrar_poltronas(){ printf("[%c] [%c] [%c] [%c] [%c] [%c] [%c] [%c] [%c] [%c]",p[0],p[1],p[2],p[3],p[4],p[5],p[6],p[7],p[8],p[9]); printf("\n\n"); printf("[%c] [%c] [%c] [%c] [%c] [%c] [%c] [%c] [%c] [%c]",p[10],p[11],p[12],p[13],p[14],p[15],p[16],p[17],p[18],p[19]); } void reservar_poltrona(){ int i; do{ mostrar_poltronas(); printf("\nDigite a poltrona que deseja reservar (digite 0 para sair): "); scanf("%i", &i); p[i-1]=88; system("cls"); }while (i!=0); } int main() { //TESTE DAS FUNÇÕES int menu; printf("\nTESTE\nMostrar poltronas: 1\nReservar poltronas: 2\nOpcao: "); scanf("%i", &menu); if (menu==1) mostrar_poltronas(); else if (menu==2) reservar_poltrona(); return 0; } Comecei a criar esse vetor char que armazena as poltronas, e consegui fazer com que ele mostrasse as 9 primeiras poltronas com seus números certos, utilizando a tabela ASCII. Mas a partir do 9 não consegui mais! (Onde está representado pelas letras A - L). Alguém pode me dar alguma ajuda/dica de como resolver isso? Desde já, agradeço muito!

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...