Aleck Postado Maio 18, 2010 Denunciar Share Postado Maio 18, 2010 CarosEste programa precisa inserir nome do aluno e 4 notas.Listar o nome a media e se media>=6 aprovadose não reprovado meu código esta com erro podem me ajudar?#include <stdio.h> #define true 1 struct prs{ char nome[100]; float n1,n2,n3,n4,media; struct prs *ptrprox; }; struct prs *ptrprim, *ptratual, *ptrnovo; main(){ char ch; ptrprim=(struct prs*)NULL; while (true){ printf ("\nDigite 'e' para inserir"); printf ("\nDigte 'l' para a lista"); printf ("\n"); ch=getche(); switch (ch){ case 'e':novonome(); break; case 'l':listatudo(); break; defaut: ("\n Digite opções validas"); } } } novonome(){ ptrnovo=(struct prs*) malloc(sizeof(struct prs)); if (ptrprim==(struct prs*)NULL){ ptrprim=ptrnovo; ptratual=ptrnovo; }else{ ptratual=ptrprim; while(ptratual->ptrprox!=(struct prs*)NULL){ ptratual=ptratual->ptrprox; } ptratual->ptrprox=ptrnovo; ptratual=ptrnovo; } printf ("\n Digite o nome "); gets (ptratual->nome); ptratual->ptrprox=(struct prs*)NULL; printf ("\n Digite a primeira nota\n"); gets (ptratual->nome); ptratual->ptrprox=(struct prs*)NULL; printf ("\n Digite a segunda nota\n"); gets (ptratual->nome); ptratual->ptrprox=(struct prs*)NULL; printf ("\n Digite a terceira nota\n"); gets (ptratual->nome); ptratual->ptrprox=(struct prs*)NULL; printf ("\n Digite a quarta nota\n"); gets (ptratual->nome); ptratual->ptrprox=(struct prs*)NULL; (*ptratual).media=((*ptratual).n1+(*ptratual).n2+(*ptratual).n3+(*ptratual).n4)/4; if((*ptratual).media>=6) printf("Aprovado"); else{ printf("Aluno reprovado"); } } listatudo(){ if(ptrprim==(struct prs*)NULL){ printf ("\n lista vazia \n"); (*ptratual).media=((*ptratual).n1+(*ptratual).n2+(*ptratual).n3+(*ptratual).n4)/4; if((*ptratual).media>=6) printf("Aprovado"); else{ printf("Aluno reprovado"); } return; } ptratual=ptrprim; do{ printf ("\n nome%s\n", ptratual->nome); ptratual=ptratual->ptrprox; printf ("\n Media %f\n", ptratual->media); ptratual=ptratual->ptrprox; }while (ptratual!=(struct prs*)NULL); } Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 RonaldoRG Postado Maio 18, 2010 Denunciar Share Postado Maio 18, 2010 Qual o erro? Se for de compilação, posta a saída do compilador.Abraço. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Aleck Postado Maio 18, 2010 Autor Denunciar Share Postado Maio 18, 2010 Qual o erro? Se for de compilação, posta a saída do compilador.Abraço.O erro é epresentado no calculo da média mesmo com a média abaixo de 6surge a mensagem aprovado.E quando digito L pata listar lista apenas como nome5. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Aleck Postado Maio 19, 2010 Autor Denunciar Share Postado Maio 19, 2010 (editado) Este código precisa exibir nome do aluno a media e se foi aprovado ou não.Utilizando lista encadeada.Esta apresentando erros.O erro é apresentado no calculo da média mesmo com a média abaixo de 6surge a mensagem aprovado.E quando digito L pata listar lista apenas como nome5. Editado Maio 19, 2010 por Aleck Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jonathan Queiroz Postado Maio 19, 2010 Denunciar Share Postado Maio 19, 2010 Alguém pode me ajudar com este problema???Peço que evite a postagem de up's conforme a regra 3.6 (ver regras)3.6 É proibida a abertura de tópicos com títulos como "Socorro", "Ajuda", "Urgente", etc, ou com títulos que não descrevam a dúvida, como "Uma dúvida simples", "Alguém pode me ajudar?", "Dúvida de Iniciante", etc. Tópicos assim serão editados sem aviso prévio. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 RonaldoRG Postado Maio 19, 2010 Denunciar Share Postado Maio 19, 2010 Acho que o problema tá aqui:... printf ("\n Digite a primeira nota\n"); gets (ptratual->nome); ptratual->ptrprox=(struct prs*)NULL; printf ("\n Digite a segunda nota\n"); gets (ptratual->nome); ptratual->ptrprox=(struct prs*)NULL; printf ("\n Digite a terceira nota\n"); gets (ptratual->nome); ptratual->ptrprox=(struct prs*)NULL; printf ("\n Digite a quarta nota\n"); gets (ptratual->nome); ...Você tá lendo as notas e armazenando na mesma variável ptratual->nome. Não teria que colocar em (*ptratual).n1, (*ptratual).n2, (*ptratual).n3, (*ptratual).n4?Veja ai e posta o resultado. Abraço. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Aleck Postado Maio 19, 2010 Autor Denunciar Share Postado Maio 19, 2010 Continua apresentando erro de sintaxe e na função novonome. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 RonaldoRG Postado Maio 19, 2010 Denunciar Share Postado Maio 19, 2010 (editado) Erro de sintaxe onde? Posta a saída do compilador que facilita agente te ajudar. Abraço.Substitua os (*ptratual).n1 por ptratual->n1. Editado Maio 19, 2010 por RonaldoRG Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Aleck
Caros
Este programa precisa inserir nome do aluno e 4 notas.
Listar o nome a media e se media>=6 aprovado
se não reprovado meu código esta com erro podem me ajudar?
Link para o comentário
Compartilhar em outros sites
7 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.