Probléme dans un programme

Bonjour,a tous je n'arrive pas a résoudre le probléme du programme suivant.

#include <stdio.h>
#include <stdlib.h>

void tri_a_bulles(long *pt1, long *pt2, int i);

int main(void)
{
int i=0, j=0;
long tableau[50];

printf("Remplir le tableaux/n");
scanf("/n%ld", &tableau[i]);

printf("Remplir le tableaux/n");

while(tableau[i] != 0);
{
i++;

scanf("/n%ld", &tableau[i]);
}

tri_a_bulles(&tableau[0],&tableau[1],i);

while(j != i+1)//permet d'afficher notre tableau trié
{
printf("\n%ld", tableau[j]);
j++;
}

return 0;
}

void tri_a_bulles(long *pt1, long *pt2, int i)
{
int premier, deuxieme, a, b, test, val;

long *pointe1 = NULL;
pointe1 = pt1;

long *pointe2 = NULL;
pointe2 = pt2;

do

{
premier = 0;
test = 1;
deuxieme = 0;
a = 0;
b = 0;
pointe1=pt1;
pointe2=pt2;

while(premier <= i-1)
{
if(*pt1 >= *pt2)
{
val = *pt1;
*pt1 = *pt2;
*pt2 = val;
a++;
}
pt1 = pt1+2, pt2 = pt2+2, premier = premier+2;
}

pt1++, pt2++;

while(deuxieme <= i-2)
{
if(*pt1 >= *pt2)
{
val = *pt1;
*pt1 = *pt2;
*pt2 = val;
b++;
}
pt1 = pt1+2, pt2 = pt2+2, deuxieme = deuxieme+2;
}
}while((a+b) != 0);
}

voici le message d'erreur:
1>c:\users\damien\documents\visual studio 2005\projects\programme-c\programme-c\decalage.c(47) : error C2143: erreur de syntaxe : absence de ';' avant 'type'
1>c:\users\damien\documents\visual studio 2005\projects\programme-c\programme-c\decalage.c(48) : error C2065: 'pointe2' : identificateur non déclaré
1>c:\users\damien\documents\visual studio 2005\projects\programme-c\programme-c\decalage.c(48) : warning C4047: '=' : 'int' diffère de 'long *' dans les niveaux d'indirection
1>c:\users\damien\documents\visual studio 2005\projects\programme-c\programme-c\decalage.c(59) : warning C4047: '=' : 'int' diffère de 'long *' dans les niveaux d'indirection

je ne vois pas à quoi sa correspond merci d'avance pour votre aide.
Configuration: Windows Vista
Firefox 2.0.0.14

4 réponses

  1. Ca compile sans problème avec Dev-Cpp (toutefois, il faudrait initialiser ton tableau, sous peine de boucle infinie dans ton main() )
    0
    1. moi avec visual c++ et sous linux sa ne fonctionne pas.
      0
      1. Au faite si toi sa fonctionne tu pourait m'envoyer in prin écran du résultat stp
        0
        1. J'ai modifié le code, inexplicablement, while(tableau[i]!=0) ne fonctionne pas

          (je n'ai changé que le main)
          int main(void) 
          { 
          int i=0, j=0; 
          long tableau[50]; 
          
          printf("Remplir le tableaux\n"); 
          scanf("%ld", &tableau[i]); 
          
          printf("Remplir le tableaux\n");
          if(tableau[i] != 0)
           printf ("controle 0 : tableau[i]!=0 \n");
          do
          { 
          printf("controle 1 : tableau[%d]!=0 \n",i);
          i++; 
          scanf("\n %ld", &tableau[i]); 
          }
          while(tableau[i] != 0);
          system("PAUSE");
          
          tri_a_bulles(&tableau[0],&tableau[1],i); 
          system("PAUSE");
          while(j != i+1)//permet d'afficher notre tableau trié 
          { 
          printf("\n%ld", tableau[j]); 
          system("PAUSE");
          j++; 
          } 
          
          printf("\n");
          system("PAUSE");
          return 0; 
          }  
          


          Voici le résultat :
          Remplir le tableaux
          5
          Remplir le tableaux
          controle 0 : tableau[i]!=0
          controle 1 : tableau[0]!=0
          1
          controle 1 : tableau[1]!=0
          5
          controle 1 : tableau[2]!=0
          0
          Appuyez sur une touche pour continuer...
          Appuyez sur une touche pour continuer...
          
          1Appuyez sur une touche pour continuer...
          
          5Appuyez sur une touche pour continuer...
          
          0Appuyez sur une touche pour continuer...
          
          5Appuyez sur une touche pour continuer...
          
          Appuyez sur une touche pour continuer...
          


          Il semblerait toutefois que ton triabulle ait bel et bien un problème puisque :
          Remplir le tableaux
          4
          Remplir le tableaux
          controle 0 : tableau[i]!=0
          controle 1 : tableau[0]!=0
          5
          controle 1 : tableau[1]!=0
          4
          controle 1 : tableau[2]!=0
          12
          controle 1 : tableau[3]!=0
          0
          Appuyez sur une touche pour continuer...


          Quitte sans warning après l'appui.
          0
          1. penses a retirer les system("PAUSE") si tu veux compiler sous linux ;)
            0