Erreur remplissage tableau en c

Fermé
rimounatn Messages postés 93 Date d'inscription jeudi 24 décembre 2009 Statut Membre Dernière intervention 7 septembre 2010 - 3 janv. 2010 à 15:30
lucieb31 Messages postés 345 Date d'inscription mercredi 14 janvier 2009 Statut Membre Dernière intervention 28 juillet 2012 - 3 janv. 2010 à 21:02
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 mercredi 14 janvier 2009 Statut Membre Dernière intervention 28 juillet 2012 62
3 janv. 2010 à 21:02
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