Tri langage c
Résolu
techis
Messages postés
18
Date d'inscription
Statut
Membre
Dernière intervention
-
techis Messages postés 18 Date d'inscription Statut Membre Dernière intervention -
techis Messages postés 18 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
je suis un débutant en langage c
je voudrais faire le tri croissant en c...
par deux boucle
^par exemple : 15 25 9 il devient 9 15 25
merci
je suis un débutant en langage c
je voudrais faire le tri croissant en c...
par deux boucle
^par exemple : 15 25 9 il devient 9 15 25
merci
Configuration: Windows XP / Firefox 3.6
7 réponses
-
salut,
Une piste.
tu stock des nombres dans un tableau.
Tu crées une boucle qui parcours le tableau tant que la valeur de la case n est inferieure à la valeur de la case n+1. et tu stok cette valeur dans la case P d'un autre tableau ( sachant que P est incrémenté de 1 à chaque stockage)
Tu n'oublies pas de supprimer la valeur de la case que tu viens de récupérer sinon tu auras toujours le mm nombre. -
salut mais jai rien compris
-
j'ai essayé mais ca marche pas!!
#include<stdio.h>
#include<conio.h>
main(){
int T[7];
int i,j;
int p;
for(i=0;i<=6;i++)
{
printf("donner la valeur %d",i+1);
scanf("%d",&T[i]);
}
for(i=0;i<=6;i++)
{
for(j=1;j<=7;j++)
{
if(T[0]>T[j])
{
p=T[0];
T[0]=T[j];
T[j]=p;
}
}
}
for(i=0;i<=6;i++)
printf("%d\n",T[i]);
getch();
return 0;
}
ecrire un prog qui permet de trier au sens croissant le Tableau "T" de type entier et de dimension "7" -
ça fait longtemps que j'ai pas fait de C alors les syntaxes seront surement à revoir
mettre les nombres dans un tableau , je pense que jusque là ça va.
ensuite comparer les valeurs:
tmp = tablo[0];
for(i; i<longueur_tableau;i++)
{
if(tablo[i]<tmp)
{
tmp = tablo[i];
indice = i;
}
else
{ indice=0;}
}
à la fin de cette boucle tu as la plus petite valeur dans tmp, et l'indice du tableau correspondant à cette valeur dans indice
cherches un peu la suite...
je suis sur qu'il existe déjà bon nombres de fonctions dispo sur le net pour ça
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
est ce que vs pouvez me dire ou jai commis d erreur sur mon programme ??
-
pourquoi utilise tu une boucle for avc i dans la deuxieme partie.
tu as ta boucle for avc i, dans laquelle est imbriqué une boucle for avc j.
mais tu utilises à aucun moment ton i .
et pour ce qui est de ta boucle avec j, ça marche si on inverse tout le temps.
mais si lors du premier passage T[0] est inferieur à T[j=1], on touche rien
dc on compare T[0] à T[j=2]. T[0] est superieur donc on inverse. T[0] se retrouve alors derriere ( dc plus grand que T[j=1]) ...; à aucun moment tu ne compares T[j=1] et T[j=2]...
aide toi de petit schema pour comprendre ce qui se passe dans ton code.
Parcequ'il est vrai que à l'écrit comme ça , c'est pas évident à comprendre -
#include<stdio.h>
#include<conio.h>
main(){
int T[7];
int i,j;
int p;
for(i=0;i<=6;i++)
{
printf("donner la valeur %d: ",i+1);
scanf("%d",&T[i]);
}
for(i=0;i<=6;i++)
{
for(j=i+1;j<=7;j++)
{
if(T[i]>T[j])
{
p=T[i];
T[i]=T[j];
T[j]=p;
}
}
}
for(i=0;i<=6;i++)
printf("%d\n",T[i]);
getch();
return 0;
}
voila ca marche mercii:::)