*LighTninG* | Salut!
Etant débutant en C, je n'arrive pas à comprendre où se situent les erreurs dans ce petit programme.
Il s'agissait de rédiger un programme qui tri les valeurs d'un tableau par ordre croissant.
-----------------------------------------------------------------
Code :
- #include <stdio.h>
- #include <stdlib.h>
- //saisie du tableau
- void saisir_tableau(int tab[],int nbentiers)
- {
- int i;
- int entier;
- i=0;
- printf("Combien d'entiers? (2 minimum) \n" );
- scanf("%i",&nbentiers);
- while(nbentiers<2)
- {
- printf("Erreur ! Combien d'entiers? (2 minimum) \n" );
- scanf("%i",&nbentiers);
- }
- tab=(int *) malloc (nbentiers * sizeof(int) );
- for(i=0;i<nbentiers;i++)
- {
- printf("Entrez la %ie valeur du tableau: ",i+1);
- scanf("%i",&tab[i]);
- }
- }
- //affichage tableau
- void affiche_tableau(int tab[],int nbentiers)
- {
- int i;
- int entier;
- entier=0;
- i=0;
- while(i<=nbentiers)
- {
- printf("%i \n",tab[i]);
- i++;
- }
- }
- //tri
- void tri_bulles(int tab[],int nbentiers)
- {
- int i,j,min,aux;
- int perm;
- aux=0;
- i=0;
- j=2;
- min=j;
- perm=1;
- while(perm=1)
- {
- min=j;
- perm=0;
- for(i=nbentiers;i>=min;i--)
- {
- if (tab[i]<tab[i-1])
- {
- aux=tab[i];
- tab[i]=tab[i-1];
- tab[i-1]=aux;
- j=i;
- perm=1;
- }
- }
- }
- }
- //fonction principale
- main()
- {
- int nbentiers;
- int *tab;
- nbentiers=0;
- tab=0;
- saisir_tableau(tab,nbentiers);
- affiche_tableau(tab,nbentiers);
- tri_bulles(tab,nbentiers);
- affiche_tableau(tab,nbentiers);
- free(tab);
- }
|
-----------------------------------------------------------------
Donc si vous pouviez m'aider ce serait sympa, ca fait déjà 2h que je bloque.
Merci d'avance. Message édité par *LighTninG* le 20-10-2002 à 18:08:43
|