Tom's Guide > Forum > Programmation > Tableau en C... Newbie need help svp tres important

Tableau en C... Newbie need help svp tres important

Forum Programmation : Tableau en C... Newbie need help svp tres important

TomsGuide.com : 800 000 inscrits répondent à toutes vos questions high-tech et informatique. Pour obtenir de l'aide, inscrivez-vous gratuitement !
Mot :    Pseudo :           
 

bonjour je viens de changer d'ecole, et j'ai de la programmation en C, je sui newbie, et je me suis inscrit dans cette option un peu tard.

je n'ai donc pas les base qu'ont les autre, (ainsi que vous) voici mon enoncé

[b]Classement des valeurs d’un tableau.


1. Ecrire un programme qui permet de classer différentes valeurs d’un tableau de nombres réels. Au départ la dimension du tableau sera définie dans une constante.
#define MAX 30.

2. On désignera le tableau par float tab[MAX] dans le programme principal.


3. On réalisera une fonction qui permettra l’encodage en transmettant le pointeur
tab. On réalisera une fonction qui teste si le nombre de valeurs à entrer (nombre n demandé au clavier) est plus petit que la dimension réservée MAX : si c’est vrai la valeur retournée par la fonction sera n si non elle retournera 0.
int nombre_valide(). Dans cette fonction on recommence la saisie jusqu’à ce le nombre de valeurs lue soit plus petit que MAX dans une gestion d’écran semblable à celle de l’exercice 1.


4. Pour vérifier si le tableau est bien garni, on appellera une fonction d’affichage qui affichera le contenu du tableau. Cette fonction recevra en paramètre le pointeur tab et la dimension du tableau à éditer.

5. On réalisera une fonction qui effectue le tri du tableau. La signature de la fonction devrait donc être du type void tri(float tab[], int n) ;


6. Pour terminer le programme on appellera la fonction d’affichage pour afficher cette fois le tableau trié void affiche(float tab[],int n) ;


J'ai trouvé un bout de code sur le net, mais je ne sais qu'en faire, pourriez vous m'aider svp??? le voici


#include <stdio.h>

#define NBMAX 10


void afficherTableau(int tab[])
{
int i;
for(i=0; i<NBMAX; i++)
{
printf("t[%d] = %d\n", i, tab[i]);
}
}


void remplirTableau(int tab[])
{
int i;
for(i=0; i<NBMAX; i++)
{
printf("Veuillez saisir la %deme valeur :\n", i+1);
scanf("%d", &tab[i]);
}
}


void trierParSelectionDuMinimum(int tab[])
{
int i, j, indice, mini, min_found;
for(i=0; i<=NBMAX-2; i++)
{
min_found=0;
mini=tab[i];
for(j=i+1; j<=NBMAX-1; j++)
{
if(mini>tab[j])
{
mini=tab[j];
min_found=1;
indice=j;
}
}
if(min_found==1)
{
tab[indice]=tab[i];
tab[i]=mini;
}
}
}


void main(void)
{
int tableau[NBMAX];
remplirTableau(tableau);
printf("\n" );
afficherTableau(tableau);
printf("\n" );
trierParSelectionDuMinimum(tableau);
printf("\n" );
afficherTableau(tableau);
}




Je vous remerie vous m'etes d'une tres tres tres grande utilité!!!

Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

je ne comprend pas ton problème, tu ramène la réponse avec toi (ou presque):
tu verra en gras ce qu'il faut changer, si j'ai bien compris l'énoncé de ton problème.
(j'avais oublié : remplace les int du tableau et des variables de stockages par des float)

Mais par contre, cet algorithme dit "tri naif" est l'un des plus lents ! Il en existe d'autre bien plus rapide.
Si tu les veux, répond à ce post ou par mp (ca évite de faire des post de taille énorme... :p)

#include <stdio.h>

#define MAX 30


void afficherTableau(int tab[])
{
int i;
for(i=0; i<MAX; i++)
{
printf("t[%d] = %d\n", i, tab[i]);
}
}

/*
initialise le tableau
*/

void remplirTableau(int tab[])
{
int i;
for(i=0; i<MAX; i++)
{
printf("Veuillez saisir la %deme valeur :\n", i+1);
scanf("%d", &tab[i]);
}
}

/*
trie le tableau par ordre croissant
*/


void trierParSelectionDuMinimum(int tab[])
{
int i, j, indice, mini, min_found;
for(i=0; i<=MAX-2; i++)
{
min_found=0;
mini=tab[i];
for(j=i+1; j<=MAX-1; j++)
{
if(mini>tab[j])
{
mini=tab[j];
min_found=1;
indice=j;
}
}
if(min_found==1)
{
tab[indice]=tab[i];
tab[i]=mini;
}
}
}

/*
fonction principale du projet
*/

void main(void)
{
int tableau[MAX];
remplirTableau(tableau);
printf("\n" );
afficherTableau(tableau);
printf("\n" );
trierParSelectionDuMinimum(tableau);
printf("\n" );
afficherTableau(tableau);
}

Répondre à aispirit

Je lui avais répondu , je le poste ici pour que ca serve aux autres ( très poussé pointeurs ).

[ source ]

voila, ++

Répondre à kyen

Dans ce cas ...
Juste une petite remarque, le tableau et les variables temporaires doivent être définies en float et non int (pour que j'ai quelque chose à dire :p)

autremennt il existe aussi la méthode de tri rapide. Mais je mettrais un code source plus tard (vu que je commence tout de suite les cours ....)

Répondre à aispirit

fredouille je te conseille d'analyser ce code et de le comprendre car sinon tu seras très vite larguer...A+ bonne merde

Répondre à PoulS
Tom's Guide > Forum > Programmation > Tableau en C... Newbie need help svp tres important
Aller à :

Il y a 1539 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens