Ir ao conteúdo
  • Cadastre-se

Dúvida / Programação Básica em C


Proveyron
Ir à solução Resolvido por Proveyron,

Posts recomendados

Olá, boa noite. 

 

Estou fazendo um pequeno exercício de programação desde as 23h XD, sim, sou bem leigo. 

 

Segue em spoiler o enunciado. 

 

Você deve fazer um programa em C que gerencie os dados de alunos de uma turma através do uso de arquivos. O arquivo deve utilizar a seguinte estrutura para os dados de cada aluno:

 

typedef struct _ALUNO

{        char nome [81];

         char matricula[10];

float n1 , n2, med;

} ALUNO;

 

O programa deve apresentar um menu com as seguintes opções:

1 - Inserir dados de novo aluno

2 - Consultar dados de um aluno

3 - Imprimir dados de todos os alunos

4 - Imprimir média da turma

5 - Sair

 

Obs.: Os alunos podem ser cadastrados enquanto o usuário desejar e cada novo aluno deve ser cadastrado ao final do arquivo.

 

E aqui segue o código que eu fiz até agora. 

 

#include <stdio.h>#include <stdlib.h> int main(void){    typedef struct     {     char nome [80];     int matricula;     float n1, n2, med;     } ALUNO;     ALUNO ALUNOS[30];     int selecao;    int c;    float media;    c = 0;     while (selecao != 5) {    system("cls");    printf("Selecione uma atividade...\n\n[1] Inserir dados de novo aluno\n\n[2] Consultar dados de um aluno\n\n[3] Imprimir dados de todos os alunos\n\n[4] Imprimir media da turma\n\n[5] Sair\n\n");    printf ("Selecao: "); scanf("%d",&selecao);     switch (selecao)    {         case 1:        {        c = c + 1;        gets(ALUNOS[c].nome);        printf("Nome do aluno: ");        gets(ALUNOS[c].nome);        printf("Nota 1: ");        scanf("%d", &ALUNOS[c].n1);        printf("Nota 2: ");        scanf("%d", &ALUNOS[c].n2);        ALUNOS[c].matricula = c;        ALUNOS[c].med = (ALUNOS[c].n1 + ALUNOS[c].n2) / 2;        break;        }        case 2:        {        int mat;        printf("\nInforme a matricula: ");        scanf("%d", &mat);        printf("\nNome do Aluno: %c\n", &ALUNOS[mat].nome);        printf("Nota 1: %d\n", &ALUNOS[mat].n1);        printf("Nota 2: %d\n", &ALUNOS[mat].n2);        printf("Media das Noras: %f\n\n", &ALUNOS[mat].med);        system ("pause");        break;        }        case 3:        {         }        case 4:        {         }        case 5:        {        system ("pause");        return EXIT_SUCCESS;        }    }    }     return 0;}

 

O código funciona bem, aparentemente sem nenhum erro, o único problema, e que pelo o que eu vejo, os dados inseridos não são armazenados. No momento em que eu consulto o cadastro dos alunos, aparecem valores aleatórios que são atribuídos às variáveis.

 

Ex.: 28ktsa9.jpg

Gostaria que me ajudassem, muito obrigado.

Link para o comentário
Compartilhar em outros sites

  • Solução

Muito obrigado!

 

Uma coisa boba que eu não consegui identificar.

 

Agora os dados estão sendo mostrados corretamente, mas o nome ainda não aparece ;-; vou dar mais algumas revisadas.

 

EDITADO: É, o nome também era um erro bobo.

 

Já foi resolvido.

 

Alguma dica de como passar essas informações para um .txt?

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

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...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!