Bonjour,
Je dois faire un programme qui reçoit les valeurs d'un tableau et les range en ordre croissant.
J'ai pensé faire comme dans le fichier cpp attaché mais ca ne marche pas
quelqu'un a une idée?
merci d'avance
Bonjour,
Je dois faire un programme qui reçoit les valeurs d'un tableau et les range en ordre croissant.
J'ai pensé faire comme dans le fichier cpp attaché mais ca ne marche pas
quelqu'un a une idée?
merci d'avance
Le commentaire est bon. La boucle l'implementant est mauvaise. Essaie d'afficher ce qui se passe, tu devrais comprendre.
- En C l'extension d'un fichier source est *.c non pas *.cpp
- On ne déclare pas de prototype de fonction à l'intérieur d'une autre mais en dehors de toutes fonctions
- La dernière valeur est automatiquement tirée, il faut donc par courrir le tableau sur n -1
Mon Site
Ma bibliothèque de gestion des chaînes de caractères en C
L'imagination est plus importante que le savoir. A. Einstein
Je ne répond à aucune question technique par MP, merci d'avance !
Envoyé par Franck.H
je travaille sur visual c++ c'est donc ce que j'ai comme extension mais tout marche bien.
dans le livre que j'utilise (Delannoy), il est expliqué que les prototypes doivent être déclarés dans la fonction appellante.
Ha ... jamais vu ca moi ...Envoyé par byonatane
![]()
Mon Site
Ma bibliothèque de gestion des chaînes de caractères en C
L'imagination est plus importante que le savoir. A. Einstein
Je ne répond à aucune question technique par MP, merci d'avance !
Si tu parles de .cpp, c'est l'extension par défaut. Il faut la modifier en .c.Envoyé par byonatane
Grosse ânerie.dans le livre que j'utilise (Delannoy), il est expliqué que les prototypes doivent être déclarés dans la fonction appellante.
Je ne suis pas surpris. Les livres théoriques de Delannoy de sont pas dans ma liste de ressources recommandées. Je recommande plutôt le Braquelaire
Dans les programmes que j'ai faits jusqu'à maintenant ça marchait très bien et je trouve que le livre est bon.Envoyé par Emmanuel Delahaye
Pourqoi ça poseriat un problème de déclarer les prototypes dans la fonction appelante?
salut,
je te propose le tri par selection car je comprend pas trop la methode que tu as utilisé, voici un code qui pourrait t'aider:
a+
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 void main() {int t[N],i,temp,tri; //remplissage du tableau for(i=0;i<5;i++) scanf("%d",&t[i]); //application du tri par selection for(i=0;i<N-1;i++) {posmin=t[i]; for(j=i+1;j<N;j++) if (t[j]<t[posmin]) posmin=j; temp=t[posmin]; t[posmin]=t[i]; t[i]=temp; }}
Un essai de tri par minimumEnvoyé par ranell
![]()
Mon Site
Ma bibliothèque de gestion des chaînes de caractères en C
L'imagination est plus importante que le savoir. A. Einstein
Je ne répond à aucune question technique par MP, merci d'avance !
en général dans ce genre de problème il faut faire un while(condition )
De plus, dans ton code, ta boucle sur i va jusqu'à (nval-1), et donc ton premier j pour ton dernier i dépasse le tableau.
En pseudo-code, voilà l'algo :
Maintenant, tu as un moyen nettement plus simple de faire, mais... Tu ne l'as sans doute pas encore vu en cours..
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 Initialiser continuer à vrai Tant que continuer est vrai mettre continuer à faux pour i = 1 à (n-1) pour j = (i+1) à n si t(j) < t(i) echanger t(i) et t(j) mettre continuer à vrai sortir de boucle j fin si fin pour si continuer est vrai sortir de boucle i fin si fin pour fin tant que
Note : j'ai mis les indices de 1 à n ...à toi de faire la traduction en C ...
![]()
Merci à tous,
Je penseque la double condition t[j]<t[i] et i<nval posait problème car en introduisant une instruction if dans la boucle:
le programme marche très bien
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 for(j=i+1; j<nval; j++) { if(t[j]<t[i]) { p = t[i]; t[i] = t[j]; t[j] = p; } }
reste à savoir pourquoi
l'instruction ne sera pas executée pour le dernier i vu que la condition j<nval a été formulée dans la boucle.Envoyé par souviron34
[-mod- Attention a bien utiliser les balises]
Partager