AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  Connexion  

Partagez | 
 

 exercice 5

Aller en bas 
AuteurMessage
SonnixVI
Bonne participation


Messages : 73
Localisation : int *chezmoi=&cbna;

MessageSujet: exercice 5    Dim 15 Jan 2012 - 16:31

Bonjour,

Je fais des cours de C sur le site du zero et je suis rendu au exercise de tableau.Mais il y a
un exercise que je n'ais pas réussi :/

Il faut que dans le tableau que toute les valeurs soient en ordre croissant.
Code:
#include <stdio.h>
#include <stdlib.h>

void ordonnerTableau(int tableau[], int tailleTableau);

int main()
{
    int tableau[4]={4,3,2};
    ordonnerTableau(tableau,4);


    return 0;
}
void ordonnerTableau(int tableau[], int tailleTableau)
{
    //variables
    int i;
//tableau 0
if (tableau[0]<tableau[1] && tableau[2])
{
    tableau[0]=tableau[0];
    }
else if (tableau[0]<tableau[2] && tableau[0]> tableau[1])
    {
        tableau[0]=tableau[1];
    }
else if (tableau[0]>tableau[1] && tableau[2])
    {
        tableau[0]=tableau[2];
    }
//tableau1
if (tableau[1]<tableau[0] && tableau[2])
{
    tableau[1]=tableau[0];
    }
else if (tableau[1]<tableau[2] && tableau[1]> tableau[0])
    {
        tableau[1]=tableau[1];
    }
else if (tableau[1]>tableau[0] && tableau[2])
    {
        tableau[1]=tableau[2];
    }
    //tableau2
    if (tableau[2]<tableau[1] && tableau[0])
{
    tableau[2]=tableau[0];
    }
else if (tableau[2]<tableau[1] && tableau[2]> tableau[0])
    {
        tableau[2]=tableau[1];
    }
else if (tableau[2]>tableau[1] && tableau[0])
    {
        tableau[2]=tableau[2];
    }
//affichage
for(i=0;i<4;i++)
{
printf("%d\n",tableau[i]);
}
}
Revenir en haut Aller en bas
onilink_
Modérateur
avatar

Messages : 9026
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

MessageSujet: Re: exercice 5    Dim 15 Jan 2012 - 16:33

Utilise un algo de tri a bulles.
C'est facile a faire et c'est expliqué un peu partout sur le net Wink

_________________
                 
Revenir en haut Aller en bas
En ligne
SonnixVI
Bonne participation


Messages : 73
Localisation : int *chezmoi=&cbna;

MessageSujet: Re: exercice 5    Dim 15 Jan 2012 - 18:00

J'ai vu un tutoriel en C++ de l'algo en bulle.Mais il y a une fonction que j'ai pas en C++ et je voulais vous demandez c'est quoi en C?

Code:
void ordonnerTableau(int tableau[], int tailleTableau)
{
    int tab_en_ordre=0;

    while(!tab_en_ordre)
    {
    int i=0;
    tab_en_ordre=1;
    for(i;i<tailleTableau-1;i++)
    {
        if(tableau[i]>tableau[i+1])
        {
            swap(tableau[i],tableau[i+1]);// c'est pour inverser les emplacements mais je ne sais pas c'est quoi en C
            tab_en_ordre=0;
        }
    }
    tailleTableau--;
    }
}
Revenir en haut Aller en bas
onilink_
Modérateur
avatar

Messages : 9026
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

MessageSujet: Re: exercice 5    Dim 15 Jan 2012 - 18:07

En C swap échange juste les valeurs contenues par les deux variables.

Ici l'équivalent de
swap(tableau[i],tableau[i+1]);

est donc
int temp = tableau[i];
tableau[i] = tableau[i+1];
tableau[i+1] = temp;

p2

_________________
                 
Revenir en haut Aller en bas
En ligne
SonnixVI
Bonne participation


Messages : 73
Localisation : int *chezmoi=&cbna;

MessageSujet: Re: exercice 5    Dim 15 Jan 2012 - 19:00

Euh... pourtant il y a une boucle mais le programme ne fait que inverser la première valeur.
Revenir en haut Aller en bas
Invité
Invité



MessageSujet: Re: exercice 5    Dim 15 Jan 2012 - 20:23

je l'ai fait avec un autre algo de tri

Code:

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int i,j,mem;

    int tab[8]={5,7,6,3,1,2,4,8};
    mem=0;
    for (i=0; i<8; ++i)
    {
        for (j=i; j<8; ++j)
        {
            if (tab[j]<tab[i])
            {
            mem=tab[i];
              tab[i]=tab[j];
              tab[j]=mem;
            }
        }
    }

    for (i=0; i<8; ++i)
    {
        printf("%d,",tab[i]);
    }
    return 0;
}

la dernière boucle c'est juste pour l'affichage


Dernière édition par sachem le Dim 15 Jan 2012 - 20:46, édité 1 fois
Revenir en haut Aller en bas
SonnixVI
Bonne participation


Messages : 73
Localisation : int *chezmoi=&cbna;

MessageSujet: Re: exercice 5    Dim 15 Jan 2012 - 20:42

sachem a écrit:
je l'ai fait avec un autre algo de tri

Code:

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int i,j,mem;

    int tab[8]={5,7,6,3,1,2,4,8};
    mem=0;
    for (i=0; i<8; ++i)
    {
        for (j=i; j<8; ++j)
        {
            if (tab[j]<tab[i])
            {
            mem=tab[i];
              tab[i]=tab[j];
              tab[j]=mem;
            }
        }
    }

    for (i=0; i<8; ++i)
    {
        printf("%d,",tab[i]);
    }
    return 0;
}

le derniere boucle c'est juste pour l'affichage

Enfaite, il faut mettre une boucle for autour de l'algo x)

EDIT: j'ai essayé quel que chose dans ton style et ça fonctionne merci Very Happy


Dernière édition par SonnixVI le Dim 15 Jan 2012 - 20:50, édité 1 fois
Revenir en haut Aller en bas
Invité
Invité



MessageSujet: Re: exercice 5    Dim 15 Jan 2012 - 20:45

pourquoi donc ?
Revenir en haut Aller en bas
SonnixVI
Bonne participation


Messages : 73
Localisation : int *chezmoi=&cbna;

MessageSujet: Re: exercice 5    Dim 15 Jan 2012 - 20:50

Car l'autre j'avais pas trop compris la boucle ouais sa va mieux avec une boucle for.Merci ! Very Happy
Revenir en haut Aller en bas
Contenu sponsorisé




MessageSujet: Re: exercice 5    

Revenir en haut Aller en bas
 
exercice 5
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Exercice «Mojito»: les hélicoptères s’entraînent en interarmées
» besoin d'un exercice de diction ?
» Jolies photos Exercice de sauvetage en mer : Des parachutistes largués dans la baie de St-Paul
» exercice professionnel à frais commun
» Exercice libéral à l'hopital ???!!!

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Forum Le CBNA :: Développement :: Programmation-
Sauter vers: