Ir ao conteúdo

C Questão usando struct, função e ponteiros.


Ir à solução Resolvido por AdrianoSiqueira,

Posts recomendados

Postado

3.Desenvolver um programa que defina uma estrutura de aluno, na função main, da seguinte maneira:

struct TipoAluno {

          int mat;

         char nome[31];

         float media;

};

Crie uma variável denominada aluno na função main da seguinte forma:

     struct TipoAluno aluno;

O programa deve fazer a leitura dos dados de um aluno em uma função denominada lerAluno e, após lido os dados, o programa deve fazer a escrita dos dados deste aluno usando uma função denominada escreveAluno. Fazer as chamadas correspondentes à essas funções, a partir da função main.

 

4.Implementar um programa, que também resolva a questão (3), a partir da criação de uma variável ponteiro da seguinte forma:

 

struct TipoAluno *aluno;

 

Estou com dificuldade em fazer a questão 4, fiz a 3, segue o cód. acho que é isso que foi pedido, se alguem puder ajudar, agradeço.

#include <stdio.h>


typedef struct tipoAluno {

          int mat;

         char nome[31];

         float media;

}aluno;

void escreveAluno(aluno alu)
{

    printf("\n\nMatricula: %d\n", alu.mat);
    printf("Nome: %s\n", alu.nome);
    printf("Media: %.2f\n", alu.media);
}

void lerAluno(aluno *alu)
{
    printf("Matricula do aluno: ");
    scanf("%d", &alu->mat );
    fflush(stdin);

    printf("Nome do aluno: ");
    gets(alu->nome);

    printf("Media do aluno: ");
    scanf("%f", &alu->media);

}

int main(void)
{
    aluno aluno;
    lerAluno(&aluno);
    escreveAluno(aluno);

    return 0;
}

 

  • Solução
Postado

Você só precisa criar um ponteiro para a sua variável aluno, depois você passa o ponteiro para as funções.

#include <stdio.h>
#include <stdlib.h>

struct tipoAluno {
    int mat;
    char nome[31];
    float media;
};

void escreveAluno(struct tipoAluno *aluno) {
    printf("Matricula: %i \n", aluno->mat);
    printf("     Nome: %s \n", aluno->nome);
    printf("    Media: %.2f \n", aluno->media);
}

void lerAluno(struct tipoAluno *aluno) {
    printf("Matricula do aluno: ");
    scanf(" %i", &aluno->mat );

    printf("Nome do aluno: ");
    scanf(" %[^\n]", aluno->nome);

    printf("Media do aluno: ");
    scanf(" %f", &aluno->media);
}

int main(void) {
    struct tipoAluno aluno;
    struct tipoAluno *ponteiroAluno = &aluno;

    lerAluno(ponteiroAluno);
    escreveAluno(ponteiroAluno);

    return 0;
}

 

  • Curtir 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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