novocain3
Messages postés3Date d'inscriptionmardi 27 novembre 2007StatutMembreDernière intervention17 juillet 2009
-
17 juil. 2009 à 18:11
nickydaquick
Messages postés416Date d'inscriptionvendredi 31 janvier 2003StatutMembreDernière intervention19 décembre 2013
-
20 juil. 2009 à 15:50
bonjour,
Newbi en programmation, je me suis lancé dans la creation d'un code en [c] qui doit inscrir les valeur d'un tableau à 2 dimensions dans un tableau à 1.
Le probleme, survient lors du lancement. Mon programme plante une fois arrivé à l'étape de fusion des deux tableaux.
(une fenetre souvre avec comme information voir===><===voir)
Information complmentaire:
OS: Xp sp3
soft: Dev-C++
#include <cstdlib>
#include
#include<stdlib.h>
#include<string.h>
#include<stdio.h>
#include<math.h>
using namespace std;
int main(int argc, char *argv[])
{
int N=0,i,j=0,k,jC=0,jL=0;
int L=0,C=0; //lignes colonnes
int dim; //dimmension tableau TT
// dimension du tableau T[L][C]
printf("le nbre de lignes du tableau\n");
scanf("%ld",&L);
printf("le nbre de colonnes du tableau\n");
scanf("%ld",&C);
int T[L][C]; //creation du tableau
for (i=0;i<L;i++)//initialisation tableau
{
for (k=0;k<C;k++)
{
T[i][k]=0;
}
}
for (i=0;i<L;i++)//affichage l'initialisation
{
for (k=0;k<C;k++)
{
printf("[ %ld ] ",T[i][k]);
}
printf("\n");
}
for (i=0;i<L;i++)//remplissage tableau au clavier
{
jL++;
for (k=0;k<C;k++)
{
jC++;
printf("L[%ld]C[%ld] = ",jL,jC);
scanf("%d", &T[i][k]);
}
jC=0;
printf("\n");
}
for (i=0;i<L;i++)//affichage tableau rempli
{
for (k=0;k<C;k++)
{
printf("[ %ld ] ", T[i][k]);
}
printf("\n");
}
//inversion tableau collones + ligne en lignes
dim=L*C; //calcul de la dimension
printf("dimension TT = %ld\n",dim); //affichage de la dimension
int TT[dim]; //creation tableau
for (i=0;i<dim;i++)//initialisation du tableau TT
{
TT[i]=0;
printf("[ %ld ]",TT[i]);
}
//_______________
//mise en commain
//________________
printf("\n\nmise en commain T[L][C] dans TT[dim]");
for (i=0;i<L;i++)
{
for (k=0;i<C;k++)
{
for (j=0;j<dim;j++)//utilisation J dans la troisieme boucle pour la designation de la case de TT
{
TT[j]=T[i][k];
}
}
}
for (i=0;i<dim;i++) //affichage de TT avec domme valeur celle de T
{
printf("[ %d ]",TT[i]);
}
printf("\n");
system("PAUSE");
return EXIT_SUCCESS;
}
novocain3
Messages postés3Date d'inscriptionmardi 27 novembre 2007StatutMembreDernière intervention17 juillet 2009 17 juil. 2009 à 21:50
Oui effectivement, grossiere erreur sur la 2eme for avec l'inversion des i & k. (Encore merci "nickydaquick" pour ta rep #2).
Mais sinon j'ai opté pour une autre solution,
for (j=0,i=0;i<L;i++)
{
for (k=0;k<C;k++)// pas d'init j ici sinon reinscription apres 1ere boucle
{
TT[j]=T[i][k];
j++;//utilisation J pour la designation de la case de TT
}
}