Probleme d'initialisation d'un tableau sous code blocks

Résolu
juju116 Messages postés 23 Date d'inscription samedi 14 mars 2009 Statut Membre Dernière intervention 1 février 2010 - 30 janv. 2010 à 15:46
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 31 janv. 2010 à 00:25
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

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
30 janv. 2010 à 17:23
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++
3
juju116 Messages postés 23 Date d'inscription samedi 14 mars 2009 Statut Membre Dernière intervention 1 février 2010
30 janv. 2010 à 17:31
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;
}
0
juju116 Messages postés 23 Date d'inscription samedi 14 mars 2009 Statut Membre Dernière intervention 1 février 2010
30 janv. 2010 à 22:24
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;
}
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
31 janv. 2010 à 00:25
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++
0
Rejoignez-nous