Erreur remplissage tableau en c

rimounatn Messages postés 93 Date d'inscription   Statut Membre Dernière intervention   -  
lucieb31 Messages postés 345 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
Mon problème c'est que j'ai un tableau d'entiers, que j'ai appelé "tableau_cord" ces entiers representen numeo de ville suivi de son abscisse et son ordonnée .
exple :
1,30,34,2,45,22,3,21,23,4,43,56,5,67,100,6,56,12.....
cela veu dire que:
La ville 1 a pour abscisse 30 et pour ordonnée 34
La ville 2 a pour abscisse 45 et pour odonnée 22
La ville 2 a pour abscisse 21 et pour odonnée 23
...
Je veux copiés les abscices dans un tableau que j'ai nomé " tableau_ab" càd
Le tableau_ab va contenir:
30,45,21,34,67,56...
et les abscisse dans un autre tableau "tableau_ord" càd:
Le tableau tableau_ab va contenir:
34,22,23,56,100,12,...
Voici mon code complet mais le probleme que ces deux tableaux lorsque j'affiche leurs contenu, ca se voi qui copie n'importe comment du tableau tableau_cord et les mets dans ces deux tableaux. :(((((
Le code qui concerne le remplissage des deux tableaux est en gras,.
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int main(int argc, char* argv[])
{
// Declaration des variables
FILE* fichierSource;
int nombre_caractere=0;
char caractere;
char ligne_lue[512],ligne_nbre[512];
int nb_lignes=0;
char * result;
char * res;
int tab[500];
int a;
int taille;
int tableau_ab[500];
int tableau_ord[500];
int tableau_cord[500];
int i=0;
int cab=0;
int cor=0;
int k=0, j=0;
//Verifier si l'utilisateur a bien saisi
if(argc<2)
{
printf("Erreur: Vous devez donner le chemain de votre fichier !!");
}
else
{
// Overture du fichier
fichierSource = fopen(argv[1],"r");

if(fichierSource == NULL)
{
printf("Erreur: Impossible de lire le fichier !!");
}
else
{


while(fgets(ligne_lue, 512, fichierSource) != NULL)
{

printf("\t%s", ligne_lue);

nb_lignes++;

if (nb_lignes==4)
{
strcpy(ligne_nbre,ligne_lue);
result=strtok(ligne_nbre," ");
int j=0;
while( result!=NULL)
{
j++;
if (j==2)
{

a= atoi(result);
taille= a;


printf ("\n ******nombre de ville******* : %d\n", taille);
}
printf ("portion %d : %s \n ", j, result);
result=strtok(NULL," ");

}

}


if (nb_lignes>7)
{
strcpy(ligne_nbre,ligne_lue);
result=strtok(ligne_nbre," ");
while( result!=NULL)
{

a= atoi(result);
tableau_cord[cab]=a;
printf("voici lelement %d du tableau abs: %d \n", cab, tableau_cord[cab]);
cab++;

result=strtok(NULL," ");
}

}

}

for(j=0;j<21;j++)
{
tableau_ab[j]=tableau_cord[j+1];
printf("element %d du tableau abscisses : %d \n", j, tableau_ab[j]);
tableau_ord[j]=tableau_cord[j+2];
printf("element %d du tableau des ordonnés : %d \n", j, tableau_ord[j]);
}

// Fermeture du fichier
fclose(fichierSource);
}
}
}
aidez moi SVP à trouver mon erreur :((( franchement j'ai mal à la tete et au yeux , j'ai vraiment besoin de votre aide..
Merci d'avance (^__^)
je compile avec le compilateur gcc
A voir également:

1 réponse

lucieb31 Messages postés 345 Date d'inscription   Statut Membre Dernière intervention   62
 
salut,
c'est normal qu'il te le remplie n'importe comment. pour le premier élément ça va fonctionner parce que tu es bien à j+1 et j+2, sauf qu'aprés ce n'est plus le cas donc il te faut un autre compteur pour tableau_cord, ce compteur doit commencer à 1 et etre incrementer de 3 à chaque fin de la boucle
j'espere t'avoir aidé
0