#include "declarations.h"

liste *fonction_division(liste *nombre1, liste *nombre2, int modulo)
{
    liste *resultat_final;
    liste *resultat_temp;
    liste *dernier_resultat_non_nul;

    str_chiffre *ptr_zeros;             

    int cpt=0;                             //on exclue la derniere opération
    int que_des_zeros = 0;

    ////////////////////    [ CREATION DU NOMBRE "RESULTAT" ]    /////////////////////////////
    if(nombre1->longueur > nombre2->longueur)                                           //
       resultat_final = fonction_creation_nombre_vide (nombre1->longueur);              //
    else                                                                                //
       resultat_final = fonction_creation_nombre_vide (nombre2->longueur);              //
                                                                                        //
    resultat_final->signe = '+';                                                        //une division de base donnera un signe '+'
    //////////////////////////////////////////////////////////////////////////////////////


    resultat_temp=nombre1;

    do
    {
    dernier_resultat_non_nul = resultat_temp;
    resultat_final = fonction_soustraction(resultat_temp,nombre2);
    resultat_temp = resultat_final;
    cpt++;
    ptr_zeros = resultat_final->tete;
                do
                {if(ptr_zeros->chiffre<0)
                 {que_des_zeros = 1;}
                 ptr_zeros = ptr_zeros->suiv;                       //parcours pour savoir s'il n'y a que des zeros
                }while (ptr_zeros!=NULL);
    }while(resultat_final->signe != '-' && que_des_zeros!=1);

if(modulo==0)
{
printf("\n\n Resultat = ");
        //////////////     DETERMINATION DU SIGNE      ////////////////////////
if (nombre1->signe == '-' && nombre2->signe == '-')                     //
    printf("+");                                                            //
else if (nombre1->signe == '+' && nombre2->signe == '-')                     //
    printf("-");                                                            //
else if (nombre1->signe == '-' && nombre2->signe == '+')                     //
    printf("-");                                                            //
else if (nombre1->signe == '+' && nombre2->signe == '+')                     //
    printf("+");                                                            //
        //////////////////////////////////////////////////////////////////////
    printf("%ld",cpt-1);
}

return dernier_resultat_non_nul ;
}
