Ir ao conteúdo
  • Cadastre-se

C Estou tendo dificuldade para fazer um código em C


Posts recomendados

Essa é a pergunta

Escrever uma função que leia a matrícula e as três notas obtidas por um aluno durante o semestre. Calcular a sua média (aritmética), imprimir a matrícula e sua situação, sendo "Aprovado" (media >= 7), "Reprovado" (media <= 5) ou "Recuperacao" (5 < media < 7). O programa para chamar a função já esta implementado a seguir, implemente apenas a função.

 

Eu estou tentando, mais o código não compila de jeito nenhum.

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

@devair1010 essa é a minha tentativa:

#include <stdio.h>
void funcao ( int matricula, float nota_1, float nota_2, float nota_3){
   int media;
    media= (nota_1+ nota_2+ nota_3)/3;
       if (media >= 7)
        {
           printf ("%d Aprovado", matricula);
        }
        else{
        }
          if (media <= 5) 
          {
          printf ("%d Reprovado", matricula);
          }
            else{
            }
              if (media>5 && media<7)
              }
              printf("%d Recuperação", matricula);
              {

int main() {
  int matricula;
    scanf("%d", &matricula);
  float nota_1, nota_2, nota_3;
    scanf("%f", &nota_1);
    scanf("%f", &nota_2);
    scanf("%f", &nota_3);
  funcao(matricula, nota_1, nota_2, nota_3);
  return 0;
}

 

acho que o erro está no if e no else, não estou sabendo lidar muito bem...

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

2 horas atrás, Rosa Isabelle Campos disse:

Escrever uma função que leia a matrícula e as três notas obtidas por um aluno durante o semestre. Calcular a sua média (aritmética), imprimir a matrícula e sua situação, sendo "Aprovado" (media >= 7), "Reprovado" (media <= 5) ou "Recuperacao" (5 < media < 7). O programa para chamar a função já esta implementado a seguir, implemente apenas a função.

 

Está claro aqui que a função deve ler a matricula e as notas. 

 

Não está escrito que a função deve calcular nada.

 

Acho que escreveu seu  programa ao contrário.

 

E não ficou claro no seu texto o que recebeu como "implementado a seguir" e o que foi que você escreveu...

 

USE  o botão code como explicado no primeiro post do forum...

 

Sobre seu código

 

Entenda que o else abaixo está em branco e logo depois um if já começa com um chave a direita } que deveria finalizar a clausula.

 

Programas de computador são coisas bem formais. Você deve atentar para um mínimo de coisas assim para poder DEPOIS se preocupar com problemas de verdade. Um bloco de comandos vem ENTRE CHAVES. 

 

scanf() retorna um int. TESTE. É melhor pra você.

 

Se quer ler algo deveria ao menos escrever algo na tela para a pessoa que está usando seu programa saber o que digitar. Mesmo que seja você. E mostre os valores lidos antes de assumir que leu certinho, ao menos no início...

 

         else{
            }
              if (media>5 && media<7)
              }
              printf("%d Recuperação", matricula);
              {

int main() {
  int matricula;
    scanf("%d", &matricula);
  float nota_1, nota_2, nota_3;
    scanf("%f", &nota_1);
    scanf("%f", &nota_2);
    scanf("%f", &nota_3);
  funcao(matricula, nota_1, nota_2, nota_3);
  return 0;
}

 

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

8 horas atrás, Rosa Isabelle Campos disse:

O programa para chamar a função já esta implementado

qual é a parte do programa que já estava implementado     ?      ,      pois essa função "int main"   , não corresponde ao enunciado    ... ,,,  ,,,

e seu código não está compilando , tem erros de syntaxes , como bem disse    @arfneto  ,  e corrigido apenas para compilar , seu código ficaria assim :

#include <stdio.h>
int funcao( int matricula, float nota_1,
            float nota_2, float nota_3 )
{
  int media;
  media = ( nota_1 + nota_2 + nota_3 ) / 3 ;
  if( media >= 7 )
  {
    printf ("%d Aprovado", matricula);
  }
  else
  {
    if( media <= 5 )
    {
      printf ("%d Reprovado", matricula);
    }
    else
    {
      if( media > 5 && media < 7 )
      {
                /// }      bfecha_chave     ?
      }
      printf("\t%d RecuperaCAo", matricula);  /// tres Barras por Que no codeblocks fica mais visiveL
                                              /// Melhor deixar como em inglês , sem acentuacao mesmo
    }
  }
  return 0;
}
int main()
{
  int matricula;
  printf("digite a MatricuLa ");
  scanf("%d", &matricula);
  float nota_1, nota_2, nota_3;
  printf("digite a Noata 2   ");
  scanf("%f", &nota_1);
  printf("digite a Noata 1   ");
  scanf("%f", &nota_2);
  printf("digite a Noata 3   ");
  scanf("%f", &nota_3);
  printf("\n\n\n");
  funcao(matricula, nota_1, nota_2, nota_3);
  printf("\n\n\n");
  return 0;
}

 

Link para o comentário
Compartilhar em outros sites

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

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

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!