Ir ao conteúdo
  • Cadastre-se

C Condição if da struct não sabendo revolver


Luis Gonzales

Posts recomendados

Bom dia,

Precisava de uma ajuda, foi proposto um exercício que consiste em criar uma struct com os valores nome, RA, nota. Entrar com RA, Nome , notas, tirar a média de 2 notas e verificar se média é maior que 6 ele esta aprovado se não reprovado, fiz tudo porém na verificação ele não mostra a 2° verificação se condição for reprovado, não consigo resolver.

Obrigado pela ajuda.

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

 struct ficha{
 char aluno [30];
 int RA;
 float mediaA[2],nota[2][2];
 float media ;
 };

int main()
{
 int i = 0;
 int c = 0;
 setlocale(LC_ALL,"Portuguese");

 struct ficha f[2];
 while(c <2){
    printf("Informe RA do Aluno :");
    fflush(stdin);
    scanf("%i",&f[c].RA);
    printf("Informe o nome do Aluno :");
    fflush(stdin);
    gets(f[c].aluno);
    c = c + 1;

 }
        for(i=0; i< 2; ++i){
         printf("Informe a nota do %i° aluno :\n",i+1);
          for(c=0; c < 2; ++c){
            fflush(stdin);
            scanf("%f",&f[i].nota[i][c]);
            f[i].media += f[i].nota[i][c];

    }
                f[i].mediaA[i] = f[i].media /2 ;
 }
                   for(i=0; i < 2; ++i){
                    printf("O Aluno %s\n",f[i].aluno);
                    printf("E seu RA :%i\n",f[i].RA);
                    printf("\n");

   }
                       for(i=0; i< 2; ++i){
                          for(c=0; c < 2  ; ++c){
                           printf("As notas do  aluno %s foram %.2f\n", f[i].aluno, f[i].nota[i][c]);
                      }
                            printf("\n");
                      }

                                  for(i=0; i< 2; ++i){ // ESSA PARTE AQUI QUE NÂO CONSIGO RESOLVER !
                                     if(f[i].mediaA[i] < 6){
                                     printf("Aprovado !\n");
                                          if(f[i].mediaA[i] > 5){
                                           printf("Reprovado !\n");
                                        }
                                    }
                                           printf("A Média do ALUNO %s: é : %f\n",f[i].aluno, f[i].mediaA[i]);
                                }







  return 0;
}

 

Link para o comentário
Compartilhar em outros sites

17 horas atrás, AnsiC disse:

Mais é tão simples!

Se 7 <= media: Aprovado Senão: Reprovado.

 

Basta usar If else


7:23 Eu resolvi com o operador ternário mais um printf. Até com vetores pode  se resolver também.


char * status []= { "Re%s", "A%s" };
printf( status [7 <= media], "provado \n" );

 

Obrigado pela ajuda mas, não sei utilizar operador ternário. como ele poderia ajudar ? Desculpe mas estou no 2° ano de analise a e UNIP é péssima em ensinar, tenho aprendido muito mais na net e aqui.

 

 

 

Link para o comentário
Compartilhar em outros sites

9 horas atrás, Luis Gonzales disse:

Obrigado pela ajuda mas, não sei utilizar operador ternário. como ele poderia ajudar ? Desculpe mas estou no 2° ano de analise a e UNIP é péssima em ensinar, tenho aprendido muito mais na net e aqui.

O operador tenário ?: é basicamente mais um seletor da linguagem, só que, diferente de switch permite apernas duas respostas.

 

Para seu problema sua lógica é a mesma que aplicada por mim com vetor, sem o vetor.

printf( ((7 <= media) ? "A%s" : "Re%s"), "provado \n" );

 

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

18 horas atrás, Luis Gonzales disse:

Obrigado pela ajuda mas, não sei utilizar operador ternário. como ele poderia ajudar ? Desculpe mas estou no 2° ano de analise a e UNIP é péssima em ensinar, tenho aprendido muito mais na net e aqui.

 

No meu ponto de vista, o operador ternario é como se fosse um if e else, if representado por ? e else por :  

seguindo o exemplo do @AnsiC do printf com a mesma logica

 

printf("%s", (media>6) ? "Aprovado" : "Reprovado");

 

vejo muito a utilização do operador ternário para colocar valores nas variáveis

 

int x = (25 < 50) ? 1 : 0; nesse exemplo a variavel x receberá 1, pois 25 é menor que 50.

 

Quando a comparação é muito complexa, recomendo usar outro método, mas alguns simples, o ternário ajuda muito, enfim, fiz esse comentário só para tentar ajudar, boa sorte pra você @Luis Gonzales!

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!