Bonjour, cliquez-ici pour vous inscrire et participer au forum.
  • Login:



+ Répondre à la discussion
Affichage des résultats 1 à 7 sur 7

Exo en C, un peu d'aide ?

  1. gogitado

    Date d'inscription
    janvier 2010
    Messages
    32

    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;
    
    }
     


    • Publicité



  2. snoosha

    Date d'inscription
    novembre 2011
    Messages
    376

    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. BHM

    Date d'inscription
    mai 2012
    Messages
    13

    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. gogitado

    Date d'inscription
    janvier 2010
    Messages
    32

    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. BHM

    Date d'inscription
    mai 2012
    Messages
    13

    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.
     


    • Publicité



  6. snoosha

    Date d'inscription
    novembre 2011
    Messages
    376

    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
     

  7. PA5CAL

    Date d'inscription
    décembre 2005
    Localisation
    Paris
    Âge
    47
    Messages
    9 480

    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
     


    • Publicité




Poursuivez votre recherche :




Sur le même thème :




 

Discussions similaires

  1. Exo sur limite d'une fonction : Besoin d'un peu d'aide pour se débloquer.
    Par makesangsi 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 Nesgame 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 demoniac dans le forum Chimie
    Réponses: 2
    Dernier message: 16/01/2008, 19h00
  4. Petit exo... un peu d'aide serait la bienvenue ^^
    Par WaToO dans le forum Mathématiques du supérieur
    Réponses: 2
    Dernier message: 26/10/2005, 19h58

A voir en priorité dans les contenus de Futura-Sciences : exo limite, exo optique, exo primitive, exo serie, exo integrale, ...
Nous vous recommandons : exo test, exo oral, exo statistique, exo test, exo statistique, ...
Sur le forum : exo groupe, ...
Dans tout le site : peu de sperm, peu de tension, peu ejaculation, peu de regle, ne peu plus defragmenter, peu de courant, probleme de peu, ...