Então thiago vou te mandar o código pra vc dar uma olhada mas a parti do case 4 não estou conseguindo fazer case 1, case 2 e case 3 funcionando normal do case 4 diante estou com muita dificultade
#include <stdio.h>
#include <stdlib.h>
typedef struct pessoa{
char nome[40];
int idade;
char sexo;
}p;
typedef struct elemento{
p info;
struct elemento *prox;
}elem;
typedef elem*lista;
main(){
lista*li;
int menu, i;
int criada = 0;
p registro;
p next;
elem *no, *aux;
int cont = 0;
int ocupada = 0;
int idade;
int encontrei;
do{
system("cls");
printf("\n Menu principal");
printf("\n");
printf("\n 1 - Iniciar lista");
printf("\n 2 - cadastrar");
printf("\n 3 - relatorio do menu");
printf("\n 4 - Imprimir o Nome, idade e sexo das pessoas cuja idade seja maior que a idade da primeira pessoa");
printf("\n 5 - Imprimir o Nome e idade de todas as mulheres");
printf("\n 6 - Imprimir o Nome dos homens menores de 21 anos");
printf("\n 7 - Excluir registro");
printf("\n 8 - sair do programa \n");
printf("\n");
printf("Escolha uma opcao do menu: ");
scanf("%d", &menu);
system("pause");
switch(menu){
case 1:
if(criada==1){
printf("\n Lista ja criada!!");
}
else{
li = (lista *)malloc(sizeof(lista));
if(li!= NULL){
*li = NULL;
printf("\n Lista foi criada com sucesso!!! \n");
criada = 1;
}
else{
printf("Nao ha espaco para criar a lista! \n");
}
}
break;
case 2:
if(criada==0){
printf("A lista ainda nao foi criada retorne ao menu e digite a opcao 1!");
}
else{
printf(" \nDigite o nome da pessoa: \n");
scanf("%s", ®istro.nome);
printf("\nDigite a idade da pessoa: \n");
scanf("%d", ®istro.idade);
printf("\nDigite o sexo M para masculino e F para feminino: \n");
scanf("%s", ®istro.sexo);
no = (elem *) malloc (sizeof (elem));
if(no == NULL){
printf("\nNao ha espaço");
}
else{
no->info = registro;
no->prox = (*li);
*li = no;
printf("A inclusao feita com sucesso \n");
}
}
break;
case 3:
if(criada==0){
printf("A lista ainda nao foi criada retorne ao menu e digite a opcao 1!");
}
else{
if((*li == NULL)){
printf("\n A lista ainda esta vazia!");
}
else{
aux = *li;
while(aux!=NULL){
cont++;
printf("\n posicao na lista %d",cont);
printf("\nNome da pessoa: %s",aux->info.nome);
printf("\nA idade da pessoa eh: %d",aux->info.idade);
printf("\nO sexo da pessoa eh: %s", aux->info.sexo);
aux = aux->prox;
}
}
break;
case 4:
if(criada==0){
printf("A lista ainda nao foi criada retorne ao menu e digite a opcao 1!");
}
else{
if((*li == NULL)){
printf("\n A lista ainda esta vazia!");
}
else{
encontrei = 0;
idade = next.idade;
if(next.idade > idade){
printf("\n |Nome: %s ",next.nome);
no = no->prox;
}
else{
}
}
}
break;
case 5:
printf("\n opcao 5 \n");
break;
case 6:
printf("\n opcao 6 \n");
break;
case 7:
printf("\n opcao 7 \n");
break;
case 8:
printf("\n opcao 8 \n");
break;
default:
printf("Opcao invalida digite uma opcao valida por favor!!! \n");
}
}
system("pause");
}while(menu!=8);
return 0;
}