Exo en C, un peu d'aide ?
Répondre à la discussion
Affichage des résultats 1 à 7 sur 7

Exo en C, un peu d'aide ?



  1. #1
    invitedc3dbc26

    Exo en C, un peu d'aide ?


    ------

    Bonsoir,

    En fait j'aimerais savoir, comment, dans un tableaux de booléens aléatoire en C, je pourrais faire pour additionner les suites de 1 (qui correspondent à une place de spectacle libre).

    En fait l'exo consiste à réserver un nb de place consécutif demandé par un client, retourner la position du 1er si elles sont dispo et -1 si pas de places dispo, mais je vois pas trop comment m'y prendre, j'ai fais un code mais il lâche à partir du nombre de sièges.

    Le salle[j] + salle[j+1] est faux vu que ça va additionner même les zéros, mais je sais pas comment faire pour additionner des éléments identiques consécutifs et renvoyer leur position, merci de l'aide

    Code:
    int test_OK()
    {
        int *salle=NULL;
        int j=0;
        int somme=0;
        int places;
        int demande;
    
        printf("Entrez le nombre de place dans la salle:  ");
        scanf("%d",&places);
    
        salle=malloc(places * sizeof(int));
    
        srand(time(NULL));
        for(j=0;j<places;j++)
    
        {
            salle[j]=rand()%2;
            printf("Place numero %d: %d\n\n",j,salle[j]);
        }
    
        printf(" Combien de sieges consecutifs voulez vous ? ");
        scanf("%d",demande);
    
        for(j=0;j<places;j++)
        {
            if(salle[j] + salle[j+1]==demande)
            {
                printf("votre nb de places est dispo, la position du 1er est: %d", j);
            }
        }
        return -1;
    
    }

    -----

  2. #2
    snoosha

    Re : Exo en C, un peu d'aide ?

    Bonjour à tous ,
    Comment le ferais tu si tu devais le faire à la main sans ordinateur ?
    Une fois que tu auras fait la procédure manuelle il sera plus aisé de le transcrire en C

  3. #3
    BHM

    Re : Exo en C, un peu d'aide ?

    Personnellement, je ferai une sorte de map du tableau, imaginons que tu as ton tableau qui fait [0,0,0,0,1,1,1,0,0,11], moi je m'arrangerai pour créer une focntion qui me renverrai [4,3,2,2] (4 places prises, ensuite, 3 libres, ensuite 2 prises, ensuite deux libre).
    Dans ton cas, ca te permettra de trouver facilement dans le tableau de sortie le/les creneaux qui correspondent.
    Pour cette petite fonction, comme le dit snoosha, imagine comme tu ferai a la main (un crayon a papier et une feuille, ca mange pas de pain) et la solution te sautera aux yeux ^^

  4. #4
    invitedc3dbc26

    Re : Exo en C, un peu d'aide ?

    et bien je parcours le tableau jusqu'à tomber sur un 1, je récupère sa position et je regarde si les éléments position+1 sont des 1 jusqu'au nombre de sièges voulus non ?

  5. A voir en vidéo sur Futura
  6. #5
    BHM

    Re : Exo en C, un peu d'aide ?

    Oui, tu peut faire comme ca.

    Mais la a ce que je voit, tu fais salle[j] + salle[j+1] == demande
    mais t element ne sont que des 0 ou des 1 donc salle[j] + salle[j+1] ne donnera toujours que 0, 1 ou 2...

    si demande > 2 tu n'aura jamais de resultat, je te suggere de mettre un petit compteur tout bete.

  7. #6
    snoosha

    Re : Exo en C, un peu d'aide ?

    bonjour c'est pourtant simple , tu as donc ta salle de concert ton tableau où chaque case correspond à un siège avec 0 pour occupé et 1 pour vide
    tu cherches dans ce tableau n cases consécutives libres
    déjà y a un premier cas quand le nombre de places demandées est supérieur à la taille du tableau que tu n'a pas pris en compte ...
    ta boucle ensuite a un probleme car la limite est < places - nbreconsecutif et non places
    Code:
    trouve=vraie;
    pour k allant de 0 à nbreconsecutif
        si (salle[k+j]==0)
             trouve=faux;
    finpour
    si trouvé == vraie
        la premiere place est la place salle[k]
        fin de la boucle
    finsi

  8. #7
    PA5CAL

    Re : Exo en C, un peu d'aide ?

    Bonjour

    Tu peux, en testant l'occupation des sièges les uns après les autres, dans le même temps compter le nombre de places libres et mémoriser la première place libre de la suite, en remettant le compteur à zéro lorsque le siège n'est pas libre.

     Cliquez pour afficher

Discussions similaires

  1. Exo sur limite d'une fonction : Besoin d'un peu d'aide pour se débloquer.
    Par invitefe34e79f dans le forum Mathématiques du collège et du lycée
    Réponses: 5
    Dernier message: 12/12/2009, 17h40
  2. Exo un peu complexe.
    Par invite9814c731 dans le forum Mathématiques du collège et du lycée
    Réponses: 6
    Dernier message: 24/10/2008, 21h16
  3. un peu d'aide pour cet exo ! SVP
    Par invite58e74151 dans le forum Chimie
    Réponses: 2
    Dernier message: 16/01/2008, 19h00
  4. Petit exo... un peu d'aide serait la bienvenue ^^
    Par invite1df146af dans le forum Mathématiques du supérieur
    Réponses: 2
    Dernier message: 26/10/2005, 19h58