Débutant en C : correction sur le tri bulle
havoc31
Messages postés
8
Statut
Membre
-
lami20j Messages postés 21644 Statut Modérateur, Contributeur sécurité -
lami20j Messages postés 21644 Statut Modérateur, Contributeur sécurité -
Bonjour,
Je créer un programme de tri bulle mais là ou je bloque c'est au niveau du sous programme de tri (la permutation des 2 nombres)
voici le code
#include <stdio.h>
// saisir la taille du tableau et rentrer les valeur dans un tableau
void val_tab (int i, int tab[])
{
int longueur;
printf("Choisir le nombre de valeur du tableau : ");
scanf("%d",&longueur);
if (longueur > 50) longueur = 50;
for(i=0 ; i<longueur ; ++i)
{
printf("Rentrer la valeur %d : ",i + 1);
scanf("%d",&tab[i]);
}
}
// affichage du tableau
void tab_saisi (int tab[], int i)
{
int longueur;
printf("\nTableau saisi : \n");
for(i=0 ; i<longueur ; i++)
printf("%d \n",tab[i]);
}
// permutation
int trie (int tab[j], int tab[longueur], int *a, int *b)
{
int s, j;
for (j=0; j>longueur; j++)
if (tab[j]<tab[j+1])
{
s=*a;
*a=*b;
*b=s;
}
}
//affichage du tableau trie
void tab_trie (int i, int tab[])
{
int longueur;
printf("\nTableau trie : \n");
for(i=0 ; i<longueur ; i++)
printf("%d \n",tab[i]);
}
int main(void)
{
int tab[50];
int longueur;
int i, a, b;
printf("programme de tri bulle\n");
val_tab (i, tab);
tab_saisi (tab, i);
trie ();
tab_trie (i, tab);
system("pause");
return 0;
}
je me perd un peu dans mes déclarations je pense... si quelqu'un peut m'aidé a corrigé les erreurs bêtes...et si possible m'expliquer ce serait gentil.
le programme fonctionne mais bug au niveau du sous programme de trie.
Merci d'avance pour les futurs réponses.<code></code>
A voir également:
- Tri a bulle en c
- Logiciel montage vidéo débutant - Guide
- Logiciel de programmation pour débutant - Guide
- Platine dj debutant - Forum Enregistrement / Traitement audio
- Apprendre le coran pour débutant (+ pdf) - Télécharger - Histoire & Religion
- Comment utiliser un ordinateur pour un débutant - Astuces et Solutions
1 réponse
Salut,
Par exemple la fonction
Ensuite tu mets en paramétrés int tab[j] et int tab[longueur]. Tout peut passer un tableau en paramétre de la manière int *tab ou int tab[] en revanche si tu veux passer en paramètre juste un int qui sera une valeur contenu dans un tableau il suffit d'écrire int N1 par exemple. Mais je ne pense pas que c'est ça que tu veux.
Ensuite je vois dans main que tu appelles la fonction sans lui passer des arguments trie();
Ce n'est pas correcte.
Voici un exemple pour t'inspirer http://www.commentcamarche.net/forum/affich 4795788 c tri#2
Par exemple la fonction
int trie (int tab[j], int tab[longueur], int *a, int *b)
{
int s, j;
for (j=0; j>longueur; j++)
if (tab[j]<tab[j+1])
{
s=*a;
*a=*b;
*b=s;
}
}
Tout d'abord elle doit renvoyer un int et il n'y a pas de return dans ta fonction.
Ensuite tu mets en paramétrés int tab[j] et int tab[longueur]. Tout peut passer un tableau en paramétre de la manière int *tab ou int tab[] en revanche si tu veux passer en paramètre juste un int qui sera une valeur contenu dans un tableau il suffit d'écrire int N1 par exemple. Mais je ne pense pas que c'est ça que tu veux.
Ensuite je vois dans main que tu appelles la fonction sans lui passer des arguments trie();
Ce n'est pas correcte.
Voici un exemple pour t'inspirer http://www.commentcamarche.net/forum/affich 4795788 c tri#2