Ir ao conteúdo

Posts recomendados

Postado

Boa tarde pessoal, to com um trabalho da faculdade pra fazer aqui e não to conseguindo (o enunciado tá anexado),

 

#include <stdio.h>
#include <string.h>
int cont1=0, cont2=0, TAM;

struct aluno{
    int idade;
    char sexo;
};

int lerIdade(struct aluno A[TAM]){
    int i;
    for(i=0; i<5; i++){
        do{
            printf("Digite a idade do aluno %d: ", cont1+1);
            scanf("%d", &A[i].idade);
        }while(A[i].idade < 4 || A[i].idade > 17);
        cont1++;
    }
    return A[i].idade;
}

char lerSexo(struct aluno A[TAM]){
    int i;
    for(i=0; i<5; i++){
        do{
            printf("Digite o sexo do aluno %d ((M)asculino ou (F)eminino): ", cont2+1);
            scanf(" %c", &A[i].sexo);
        }while(A[i].sexo != 'M' && A[i].sexo != 'F');
        cont2++;
    }
    return A[i].sexo;
}

int main(){
    struct aluno A[5];
    int i, idade, masculino=0, feminino=0;
    char sexo;

    for(i=0; i<5; i++){
        idade = idade + lerIdade(A[i].idade);
        sexo = lerSexo(A[i].sexo);
        if(sexo == 'M'){
            masculino++;
        }
        if(sexo == 'F'){
            feminino++;
        }
    }
}
 

Alguem pode me dizer o que eu to fazendo de errado?

Screenshot_1.png

  • Obrigado 1
Postado

@Lucas Mello de Resende Nas funções não precisa criar outro loop, pode ser algo assim,

 

int lerIdade(){
    int idade;
    do{
        printf("Idade: ");
        scanf("%d", &idade);
    }while(idade < 4 || idade > 17);
    return idade;
}

 

E no loop em main,

 

for(i=0; i<5; i++){
    printf("Aluno %d:\n",i+1);
    A[i].idade = lerIdade();
    ...

 

  • Curtir 1
Postado

para ler idade e sexo não há razão para passar a estrutura. E se tivesse seria o caso de passar uma só...

 

O enunciado apenas diz para ler idade e sexo usando funções distintas. Para ficar mais alinhado com seu enunciado e a ideia de manipular estruturas pode usar
 

int lerIdade(struct aluno*);

 

E chamar para ler a idade do último aluno por exemplo

	lerIdade( &A[4] );

 

Ou declarar 
 

    int lerIdade();

 

e escrever 
 

    A[4].idade = lerIdade();

 

Ou algo assim.

 

 

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

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

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!