Olá, estou com dificuldade neste exercício de uma lista. Quando rodo o programa, o laço do for não funciona, ele para após o primeiro ciclo. Tem mudar alguma coisas para entender o que estava acontecendo, mas não consegui resolver. Acho que deve ter alguma coisa boba que eu não estou conseguindo ver e por isso a visão de outra pessoa iria e ajudar!
o enunciado: Escreva um programa que preencha, a partir do teclado, duas estruturas distintas do tipo vetor com as idades de 10pessoas.
A primeira estrutura do tipo vetor deverá receber somente as idades das pessoas do sexo masculino,
enquanto a segunda deverá armazenar as idades das pessoas do sexo feminino.
Após, o programa deverá exteriorizar os nomes, o sexo e as idades das pessoas que possuem idade
compreendida entre 20 (vinte) e 40 (quarenta) anos, inclusive.
#include <stdio.h>
struct masculino {
char nome[20];
int idade;
};
struct feminino {
char nome[20];
int idade;
};
int main(void){
char escolha;
int i;
struct masculino listam[10];
struct feminino listaf[10];
for (i = 0; i < 10; ++i){
printf("Digite M para adicionar uma mulher ou H para um homem\n"); //Essa mensagem deve aparecer 10 vezes para que cada vez o possa colocar uma pessoa com o sexo diferente
scanf("%c", &escolha);
if (escolha == 'h'){
printf("Digite o nome do homem\n");
scanf("%s", listam[i].nome);
printf("Digite a idade\n");
scanf("%i", listam[i].idade);
}
else{
printf("Digite o nome da mulher\n");
scanf("%s", listaf[i].nome);
printf("Digite a idade\n");
scanf("%i", listaf[i].idade);
}
}
for (i = 0; i < 10; ++i){
if ((listam[i].idade > 20 && listam[i].idade < 40) || (listaf[i].idade > 20 && listaf[i].idade < 40)){ //*a comparação para saber as idades de homens ou mulheres entre 20 e 40
printf("As pessoas com idade entre 20 e 40 anos são\n");
printf("%s, %i, %s, %i \n", listam[i].nome, listam[i].idade, listaf[i].nome, listaf[i].idade);
}
else{
printf("Nenhuma pessoa tem idade entre 20 e 40 anos\n");
}
}
system("pause");
return 0;
}