功能停止我的程序的问题

时间:2019-03-24 10:39:20

标签: c function tree

我必须创建一棵,以在其中注册一些乘客(通过飞机飞行),然后我将按其首字母搜索他们。

我的问题是insertprint函数工作得很好,但是search function第一次表现不错,但是当我想在主要之后再做其他事情时,它不运行其他功能或其他东西

(我试图问用户一个字母,然后在研究中使用该功能(在这里效果很好),但是第二次问用户另一个字母,它会打印“您正在寻找的人的第一个字母for”,但我无法写字母,并且此后它不会启动该功能。因此它在那里停止了程序


int i;
char c;

typedef struct Passager
{
    char nom[20];
    char prenom[20];
    int age;
    int num_siege;
} Passager;
Passager liste_passagers[30]; //30 = nombre de passagers

typedef struct Arbre
{
    Passager value;
    struct Arbre *fils_gauche;
    struct Arbre *fils_droit;
    struct Arbre *racine;
} Arbre;

Arbre *const empty = NULL;
Arbre *passengers = empty; //passengers = arbre des passagers

/*--------------------------------------------*/

void liste_lettre_nom(Arbre *tree, char a)
{
    Arbre *temp;
    temp = tree;
    if (!temp)
    {
        return;
    }
    else
    {
        if (a < temp->value.nom[0])
        {
            liste_lettre_nom(temp->fils_gauche, a);
        }
        if (a > temp->value.nom[0])
        {
            liste_lettre_nom(temp->fils_droit, a);
        }
        if (a == temp->value.nom[0])
        {
            printf("passager : \n");
            print_passager(temp->value);
            liste_lettre_nom(temp->fils_gauche, a);
            liste_lettre_nom(temp->fils_droit, a);
        }
    }
}

/*--------------------------------------------*/
int main()
{
    FILE* fichier = NULL;
    fichier = fopen("/Users/Patoch/Desktop/Patoch /UNI/Informatique/info sem 2/Structure de données/Labo/TP3/Passager2.txt", "r");

    if (fichier == NULL)
    { //test de la bonne ouverture du fichiers
        printf("Impossible d'ouvrir le fichier Passagers.docx");
        exit(EXIT_FAILURE); 
    }   

    for (i=0; i<(sizeof(liste_passagers)/sizeof(liste_passagers[0])); i++)
    {
        fscanf(fichier, "%s %s %d %d", liste_passagers[i].nom, liste_passagers[i].prenom, &liste_passagers[i].age, &liste_passagers[i].num_siege);
    }

    passengers = insertion(passengers, liste_passagers[1]);
    passengers = insertion(passengers, liste_passagers[2]);
    passengers = insertion(passengers, liste_passagers[0]);
    passengers = insertion(passengers, liste_passagers[5]);
    passengers = insertion(passengers, liste_passagers[26]);
    print_arbre(passengers);

    printf("-----------------------------\n");
    printf("1ere lettre du nom de la personne recherchée: \n");
    scanf("%c", &c);
    liste_lettre_nom(passengers, c);

    printf("-----------------------------\n");
    printf("1ere lettre du nom de la personne recherchée: \n");
    scanf(" %c", &c);
    liste_lettre_nom(passengers, c);



    destroy(passengers);
    fclose(fichier); 
    return 0;
}

0 个答案:

没有答案