Ir para conteúdo
Fórum Script Brasil

leandro20099

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

Sobre leandro20099

leandro20099's Achievements

0

Reputação

  1. Estou fazendo um programa que iria ler notas do teclado e iria as inserir em uma matriz tridimensional dinamicamente. estou usando o dev c++, ele complica, não mostra erros, mas para de funcionar em uma parte de codigo. se alguém puder ajudar. :rolleyes: Obs: tem um system("pause"), antes da parte que estava travando. ------------------------------------------------------------------------------ #include<stdio.h> #include<stdlib.h> struct coluna { float nota; struct coluna *prox_coluna; }; typedef struct coluna Col; struct linha { Col *c; struct linha *prox_linha; }; typedef struct linha Lin; struct tabela { Lin *l; struct tabela *prox_tabela; }; typedef struct tabela Tab; struct fila { Tab* primeiro; Tab* ultimo; }; typedef struct fila Tfila; //----------------------------------------- void cria_fila(Tfila*f) { f->primeiro = f->ultimo = NULL; } int fila_vazia(Tfila*f) { return (f->primeiro == NULL); } Col* cria_no(float nota) { Col*no = (Col*)malloc(sizeof(Col)); if(no != NULL) { no->nota = nota; no->prox_coluna = NULL; } return no; } int controle() { int i; do{ printf("Acrescentar nota na ...\n1_Proxima coluna\n2_Proxima linha\n3_Proxima tabela\n\nOpcao: "); scanf("%d",&i); if(i<1||i>3) { system("cls"); printf("Opcao errada."); } }while(i<1||i>3); return i; } int insere_fila(Tfila*f, float nota) { Col*novo; int op; novo=cria_no(nota); if(novo == NULL) return 0; if(fila_vazia(f)) {system("pause"); f->primeiro->l->c = novo; f->ultimo->l->c = novo; system("pause"); } else { op = controle(); if(op==1) { if(f->ultimo->l->c == NULL) f->ultimo->l->c = novo; f->ultimo->l->c->prox_coluna = novo; f->ultimo->l->c = novo; } if(op==2) { f->ultimo->l->prox_linha->c = novo; f->ultimo->l->c = novo; } if(op==3) { f->ultimo->prox_tabela->l->c = novo; f->ultimo->l->c = novo; } } return 1; } void exibe_notas(Tfila*f) { Tab* tabela; Lin *linha; Col *coluna; int cont_linha, cont_tabela; cont_linha=cont_tabela=1; system("cls"); for(tabela=f->primeiro; tabela!=NULL; tabela=tabela->prox_tabela) { printf("%d Tabela)\n\n",cont_tabela); for(linha=f->primeiro->l; linha!=NULL; linha=linha->prox_linha) { printf("%d Linha)",cont_linha); for(coluna=f->primeiro->l->c; coluna!=NULL; coluna=coluna->prox_coluna) { printf(" %.2f ", coluna->nota); } printf("\n"); cont_linha++; } printf("\n\n"); cont_tabela++; } } int main() { Tfila f; int op, ok1; float nota; cria_fila(&f); printf("Inserir uma nota na matriz.\n\n1_Sim\n2_Nao\n\nOpcao: "); scanf("%d", &op); while(op==1) { printf("Digite uma nota: "); scanf("%f",&nota); ok1=insere_fila(&f, nota); exibe_notas(&f); printf("Deseja inserir mais uma nota na matriz.\n\n1_Sim\n2_Nao\n\nOpcao: "); scanf("%d", &op); } } ----------------------------------------------------------------------------------------------------------
×
×
  • Criar Novo...