Probleme d'initialisation d'un tableau sous code blocks

Résolu
Signaler
Messages postés
23
Date d'inscription
samedi 14 mars 2009
Statut
Membre
Dernière intervention
1 février 2010
-
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
-
bonjour j'ai voulu juste tester un code bidon pour voir si mon initialisation de tableau fonctionné et j'ai obtenu des résults incoherents je n'ai que 8 valeurs a la place de 9 , et ces valeurs devrait pourtant etre a 0 su l'on pouvait me dire ce qu'il se passe ça parrait tellement bidon que ça fait peur en plus O_o:

int main()
{

int tableau[3][3];

int i,j;
i=0;
j=0;



for (i=0; i<2; i++)
{
for (j=0; j<1; j++)

tableau[i][j]=1;}

cout << tableau[i][j] << endl;

return 0;
}

4 réponses

Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
30
for(j = 0; j < 3; j++)
devrait aller mieux

mettre une boucle de 0 jusque < 1 inutile, le compilo la vire.

ciao...
BruNews, MVP VC++
Messages postés
23
Date d'inscription
samedi 14 mars 2009
Statut
Membre
Dernière intervention
1 février 2010

en fait en faisant ainsi j'ai verifié que mes valeurs était bien initialisé je me disais bien que c'était bizarre.

int main()
{

int i,j;
i=0;
j=0;
int tableau[3][3];

for (i=0; i<3; i++)
for (j=0; j<3; j++)
tableau[i][j]=0;

cout << tableau[0][0] << endl;
cout << tableau[1][0] << endl;
cout << tableau[2][0] << endl;
cout << tableau[0][1] << endl;
cout << tableau[1][1] << endl;
cout << tableau[2][1] << endl;

return 0;
}
Messages postés
23
Date d'inscription
samedi 14 mars 2009
Statut
Membre
Dernière intervention
1 février 2010

ici j'ai voulu testé une simulation avec les coordonnées x y de la souris, l'initialisation marche bien toute les valeur a ma première boucle sont a zero, par contre a la deuxième toute sont a 1 hors je devrais en avoir qu'une seule tu peut me dire ou ça foire?merci bcp pour ton aide. biz


#include

using namespace std;

int main()
{

int i,j,y,x,larg1,larg2,k,l;
int tableau[3][3]= {600,600};
x = 500;
y = 500;
larg1=600/3;
larg2=600/3;

for (i=0; i<3; i++)
for (j=0; j<3; j++)
tableau[i][j]=NULL;

cout << tableau[0][0] << endl;
cout << tableau[1][0] << endl;
cout << tableau[2][0] << endl;
cout << tableau[0][1] << endl;
cout << tableau[1][1] << endl;
cout << tableau[2][1] << endl;
cout << larg1 << endl;
cout << larg2 << endl;

for(l=0, i=0; i<x; i+=larg1, l++)
for(k=0, j=0; j<y; j+=larg2, k++)

tableau[k][l]=1;

cout << tableau[0][0] << endl;
cout << tableau[1][0] << endl;
cout << tableau[2][0] << endl;
cout << tableau[0][1] << endl;
cout << tableau[1][1] << endl;
cout << tableau[2][1] << endl;

return 0;
}
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
30
l = 0;
for(i = 0; i < 500; i += 200) { // 2 TOURS
k = 0;
for(j = 0; j < 500; j += 200) { // 2 TOURS
tableau[k][l] = 1;
k++;
}
l++;
}

k va de 0 à 1 à chaque tour de j;
tableau[0][l] = 1;
tableau[1][l] = 1;

Dans boucle interne, l ira de 0 à 4 puisque 4 toure en tout.
DONC il écrase des valeurs.

Moralité, ne pas compliquer les boucles inutlement.
Les mettre en forme simple comme j'ai refait.

et stop pour ce soir, je suis en tarot.

ciao...
BruNews, MVP VC++