partiamo dalla seconda domanda
anche perchè la prima mi è poco chiara:

codice:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>

main(void){
    
    char p1, p2, p3;  //per gestire la password con gli asterischi
    char gender;      //per controllare il sesso M o F    
    FILE *i;          //per pulire il display del monitor
  INSERT_PASSWD:    
    printf("Inserisci la password [3 caratteri]: ");
    gets(p1);
    //SE SEI SOTTO LINUX SCRIVI clear ALTRIMENTI cls
    i=popen("clear","w");
    printf("Inserisci la password [3 caratteri]: *");
    gets(p2);
    i=popen("clear","w");
    printf("Inserisci la password [3 caratteri]: **");
    gets(p3); 
    i=popen("clear","w");
    printf("Inserisci la password [3 caratteri]: ***");
    
    if(p1!="g" && p2!="o" && p3!="l"){
        printf("\nPassword ERRATA!!!\n");
        goto INSERT_PASSWD; 
    }

    //E' POCO ELEGANTE MA DOVREBBE FUNZIONARE 
    //(N.B. io non l'ho mai testato me lo sono inventato ora:)

    //ORA CONTROLLIAMO SE INSERISCE M=maschio o F=femmina

    printf("\nInserisci il sesso M=maschio F=femmina: ");
  INSERT_GENDER:
    gets(gender);

    if(gender != "m" && gender != "f"){
       printf("ERRORE -> valori accettati M=maschio F=femmina");
       goto INSERT_GENDER;
    }
          
    //SE NON FUNZIA FAMMI SAPERE CHE LO CORREGGO
Ciao