Ir ao conteúdo

Posts recomendados

Postado

 

<

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

/**1- Crie uma struct chamada Aluno. ok
Ela deve conter um nome (string), matrícula (um valor numérico), um vetor de 4 notas (ponto flutuante) e um campo de média final (ponto flutuante). OK :)*/

/**typedef struct Ficha_aluno{

    char nome[20];
    float matricula;
    float nota[4];
    float MF;
};*/

/**2- Crie uma função que recebe os valores de nome, matrícula e as 4 notas pelo teclado e escreve nos campos de um Aluno
(a média final deve ser calculada em outra função - ver questão 4).ok :)*/

int main (){
    float i, med;

    struct Ficha_aluno Aluno;
    printf ("\n------------------ Cadastro do Aluno ---------------\n ");

    printf("Nome do aluno(a):\n");
    fgets(Aluno.nome,20,stdin);

    printf("Digite a matricula do aluno(a):\n");
    scanf("%f",&Aluno.matricula);

    typedef struct

    for(i=0;i<4;i++){
        printf("Notas do aluno(a):\n");
        scanf("%f",&Aluno.nota);

    }
      printf("%f,",med);
      scanf("%f",&med);
      MediaF();

      printf("%f",med);
      scanf("%f",&med);
      Apr_fin_rep(med);

/**3- Crie uma função que imprime todos os campos de um Aluno. Quando for imprimir o valor de média final, assinalar ao
lado do valor se o aluno passou (média 7 ou mais), ficou de AF (média 4 ou mais, mas abaixo de 7)
ou está reprovado (média abaixo de 4)*/

float Apr_fin_rep(float med){
    MediaF(med);

    if(med==7 || med>7){
        printf("voce foi aprovado(a)\n");
    }
    if(med==4 || med<7){
        printf(" voce esta de AF\n");
    }else {
        printf("voce esta reprovado(a) \n");
    }
    return ;
}
///4- Crie uma função que recebe Aluno e calcula a média final.


float MediaF (float n1, float n2, float n3, float n4, float MF){
   MF = (n1+n2+n3+n4)/4;

     return MF;
     }
return 0;
}
/// 5- Crie uma função que recebe um vetor de Alunos e retorna qual aluno teve a maior média final

>
 

Postado

@mencionar Bom, mais ou menos, a primeira parte da struct, sei que esta correta, porém para a construção das demais parte montei em outro bloco e depois adicionei no código principal. 

 

Postado

@Cynthia Moreira Consegue compreender a lógica deste?

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

/**1- Crie uma struct chamada Aluno. ok
Ela deve conter um nome (string), matrícula (um valor numérico), um vetor de 4 notas (ponto flutuante) e um campo de média final (ponto flutuante). OK :)*/

struct ficha_aluno
{
    char nome[256];
    int matricula;
    float notas[4];
    float media;
};

/**2- Crie uma função que recebe os valores de nome, matrícula e as 4 notas pelo teclado e escreve nos campos de um Aluno
(a média final deve ser calculada em outra função - ver questão 4).ok :)*/


/**3- Crie uma função que imprime todos os campos de um Aluno. Quando for imprimir o valor de média final, assinalar ao
lado do valor se o aluno passou (média 7 ou mais), ficou de AF (média 4 ou mais, mas abaixo de 7)
ou está reprovado (média abaixo de 4)*/

///4- Crie uma função que recebe Aluno e calcula a média final.


/// 5- Crie uma função que recebe um vetor de Alunos e retorna qual aluno teve a maior média final

int main(void)
{
    struct ficha_aluno alunos[4];
    int contador, auxiliar;

    /* Pega as informações de 4 alunos */
    for (contador = 0; contador < 4; contador++) {
        printf("\nDigite o nome do %i aluno:\t", contador);
        fgets(alunos[contador].nome, 256, stdin);
        printf("\nDigite o numero da matricula do %i aluno:\t", contador);
        scanf("%i%*c", &alunos[contador].matricula);
        for (auxiliar = 0; auxiliar < 4; auxiliar++) {
            printf("\nDigite a nota %i do aluno %i:", auxiliar, contador);
            scanf("%f%*c", &alunos[contador].notas[auxiliar]);
        }
    }

    /* Mostra a informação dos alunos */
    for (contador = 0; contador < 4; contador++) {
        printf("\n\nNome do aluno %i-%s", contador, alunos[contador].nome);
        printf("\nNumero da matricula do aluno %i:%i", contador, alunos[contador].matricula);
        printf("\nNotas do aluno %i", contador);
        for (auxiliar = 0; auxiliar < 4; auxiliar++) {
            printf("\nNota %i:%.2f", contador, alunos[contador].notas[auxiliar]);
        }
    }

    getchar();      /* Pausa o programa */
    return(0);
}

 

Postado
3 minutos atrás, Cynthia Moreira disse:

@mencionar Não entendi essa parte, por que do "*"?

Toda vez que você pega algo com o scanf, ele deixa a tecla enter para trás o "%*c" retira o enter do buffer do teclado.

 

Isso com o tempo se torna um problema.

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

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!