Ir ao conteúdo

Posts recomendados

Postado

Estou aprendendo vetores, E gostaria de transformar um código que eu já tinha em Função. Em um novo código de com vetores. De acordo com o exercício.

Faça uma função que receba a quantidade de alunos de uma turma, um vetor com a matrícula dos alunos, um vetor
com as faltas dos alunos e um vetor com a média final do alunos. Esta função deve permitir que o usuário digite uma
matrícula e mostre a situação do aluno: RF ( se o número de faltas for >= 5), AP ( se a média for >= 6 e o número de faltas
< 5) ou RM ( se a média for < 6 e o número de faltas < 5).
Protótipo: void consultaAlunos( int vMatr[], int vFaltas[], float vMedias[], int qt);
Crie uma main com valores para os vetores para testar sua função.

 

void detPercentual(float CR, int area, float * pMin, float *pMax){
  if (CR >=9){
   ( * pMin)=30;
    if (area == 1) 
      (* pMax) = 40;
    else
     (* pMax) = 35;
    
  }
  else if (CR >=8){
    ( * pMin)=10;
    if (area == 1) 
      (* pMax) = 15;
    else
     (* pMax) = 12;
    
  }
  else if (CR >=7){
    (*pMin) = (*pMax) = 5;
  }
  else {
    (*pMin) = (*pMax) = 0;
  }
  return ;
}
void quebraMatr(int matr, int *pN, int*pD, int*pXXX){
  (*pN)= matr/10000;
  (*pD)= matr/1000%10;
  (*pXXX) = matr%1000;
  return;
}
int main(void){
  int matr,N,D,XXX;
  float CR,min,max;
  printf("Digite a matricula: ");
  scanf("%d",&matr);
  while (matr !=0){
      printf("Digite o CR: ");
      scanf("%f",&CR);
      quebraMatr(matr,&N,&D,&XXX);
      detPercentual(CR, N, &min, &max);
      printf("Matr: %d - Percentual mínimo: %.1f %% e máximo: %.1f %%",matr,min,max);
      printf("Digite a matricula: ");
      scanf("%d",&matr);
  } 
 
  return 0;
}

  • Curtir 1
Postado

 

 

Qual a sua dúvida?

 

Use o botão code como descrito no post inicial. Veja a diferença:

 

    void consultaAlunos( int vMatr[], int vFaltas[], float vMedias[], int qt);

 

Inclua os headers. Alinhe o código com algum critério. 

 

#include <stdio.h>

void detPercentual(float CR, int area, float* pMin, float* pMax);
void quebraMatr(int matr, int* pN, int* pD, int* pXXX);

int main(void)
{
    int   matr, N, D, XXX;
    float CR, min, max;
    printf("Digite a matricula: ");
    scanf("%d", &matr);
    while (matr != 0)
    {
        printf("Digite o CR: ");
        scanf("%f", &CR);
        quebraMatr(matr, &N, &D, &XXX);
        detPercentual(CR, N, &min, &max);
        printf(
            "Matr: %d - Percentual mínimo: %.1f %% e máximo: %.1f %%",
            matr, min, max);
        printf("Digite a matricula: ");
        scanf("%d", &matr);
    }

    return 0;
}

void detPercentual(float CR, int area, float* pMin, float* pMax)
{
    if (CR >= 9)
    {
        (*pMin) = 30;
        if (area == 1)
            (*pMax) = 40;
        else
            (*pMax) = 35;
    }
    else if (CR >= 8)
    {
        (*pMin) = 10;
        if (area == 1)
            (*pMax) = 15;
        else
            (*pMax) = 12;
    }
    else if (CR >= 7)
    {
        (*pMin) = (*pMax) = 5;
    }
    else
    {
        (*pMin) = (*pMax) = 0;
    }
    return;
}

void quebraMatr(int matr, int* pN, int* pD, int* pXXX)
{
    (*pN)   = matr / 10000;
    (*pD)   = matr / 1000 % 10;
    (*pXXX) = matr % 1000;
    return;
}

 

Evite funções void. Em geral é um desperdício. Muitas vezes um erro. Uma função chamada detPercentual() por exemplo não deveria talvez retornar um double com um percentual??

 

main() deve ser a primeira função de seu programa, se possível em um arquivo separado

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