Bonjour,

J'ai voulu tenter de créer un programme pour trier une série de nombres.

Je voulais afficher dans un premier temps le vecteur de départ et en dessous le vecteur trié.

Seulement voila, à l'endroit ou je voulais afficher le vecteur de départ il m'affiche le vecteur trié et la ou je voulais le vecteur trié il m'affiche...n'importe quoi^^

Que dois-je changer dans mon code pour que cela fonctionne?

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
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#include<stdlib.h>
#include<stdio.h>
 
int lecture(int tab[])
{
    int i;
    i=0;
    printf("veuillez entrer les nombres\n\n");
    do
    {
                     printf("nombre:  ");
                     scanf("%d",&tab[i]);
                     if (tab[i]>0)
                     {
                                  i++;
                     }
                     else if(tab[i]<0)
                     {
                         printf("entree non valide");
                     }
    }
    while (tab[i]!=0);
    return i;
}
 
int triselec(int tab[],int i)
{
     int n,k,max,temp;
     for(n=0;n<=i;n++)
     {
                      max=n;
                      for(k=n+1;k<=i;k++)
                      {
                                         if(tab[k]<tab[max])
                                         {
                                                            max=k;
                                         }
                      }
                      if(max!=n)
                      {
                                temp=tab[n];
                                tab[n]=tab[max];
                                tab[max]=temp;
                      }
     }
     return 0;
}
 
void affiche(int tab[],int i,int tabtri[])
{
     int n;
     for(n=1;n<=i;n++)
     {
                      printf(" %d ",tab[n]);
     }
     printf("\n\n");
     for(n=0;n<=i-1;n++)
     {
                        printf(" %d ",tabtri[n]);
     }
}
 
int main()
{
    int nb,tab[30],tabtri[30],arg;
    nb=lecture(tab);
    arg=triselec(tab,nb);
    affiche(tab,nb,&arg);
    system("pause");
}
Merci beaucoup!