Probleme en c++

Fermé
fk08 Messages postés 16 Date d'inscription dimanche 31 mai 2009 Statut Membre Dernière intervention 2 juin 2009 - 31 mai 2009 à 14:35
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 - 2 juin 2009 à 16:38
Bonjour,
j'ai un probleme en c++...j'etais entraine de faire un jeu de sudoku de [9][9] cases et apres que j'ai finis la 1ere partie du code j'ai voulu le compiler pour le tester mais j'ai eu 1 seul erreur qui est un"fatal error: unexpected end of file while looking for precompiled header directive Error executing cl.exe.end of file" je ne sais pas comment enlever cette erreur quelqu'un peut m'aider.??
mercii.

20 réponses

KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
31 mai 2009 à 16:39
Apparement ton fichier se termine trop tôt, as-tu fermer toutes tes accolades ?
Si tu utilises une ou plusieurs classes, as-tu penser au ";" à la fin de chaque classe ?
0
fk08 Messages postés 16 Date d'inscription dimanche 31 mai 2009 Statut Membre Dernière intervention 2 juin 2009
31 mai 2009 à 20:22
en faite voici mon code main avec 7 erreurs:
l'idee que j'ai eu durant l'ecriture de mon code est d'inserer les nombres fixes du jeu et laisser les cases vides pour que l'utilisateur met ses reponses dedans NB lesa cases vide je les ai mis a zero je ne sais pas si c juste ou faux. :

#include<iostream>
using namespace std;

void main()
{
int tab [9][9];
int [9][9];
int i;
int j; //i is for les colonnes et j for les lignes.


{
for(i=0;i<=9;i++)
{
for(j=0;j<=9;j++)
{
}
}
}

int [9][9]=
{tab[0][0]=5;
tab[0][1]=3;
tab[0][2]=0;
tab[0][3]=0;
tab[0][4]=7;
tab[0][5]=0;
tab[0][6]=0;
tab[0][7]=0;
tab[0][8]=0;
tab[1][0]=6;
tab[1][1]=0;
tab[1][2]=0;
tab[1][3]=1;
tab[1][4]=9;
tab[1][5]=5;
tab[1][6]=0;
tab[1][7]=0;
tab[1][8]=0;
tab[2][0]=0;
tab[2][1]=9;
tab[2][2]=8;
tab[2][3]=0;
tab[2][4]=0;
tab[2][5]=0;
tab[2][6]=0;
tab[2][7]=6;
tab[2][8]=0;
tab[3][0]=8;
tab[3][1]=0;
tab[3][2]=0;
tab[3][3]=0;
tab[3][4]=6;
tab[3][5]=0;
tab[3][6]=0;
tab[3][7]=0;
tab[3][8]=3;
tab[4][0]=4;
tab[4][1]=0;
tab[4][2]=0;
tab[4][3]=8;
tab[4][4]=0;
tab[4][5]=3;
tab[4][6]=0;
tab[4][7]=0;
tab[4][8]=1;
tab[5][0]=7;
tab[5][1]=0;
tab[5][2]=0;
tab[5][3]=0;
tab[5][4]=2;
tab[5][5]=0;
tab[5][6]=0;
tab[5][7]=0;
tab[5][8]=6;
tab[6][0]=0;
tab[6][1]=6;
tab[6][2]=0;
tab[6][3]=0;
tab[6][4]=0;
tab[6][5]=0;
tab[6][6]=2;
tab[6][7]=8;
tab[6][8]=0;
tab[7][0]=0;
tab[7][1]=0;
tab[7][2]=0;
tab[7][3]=4;
tab[7][4]=1;
tab[7][5]=9;
tab[7][6]=0;
tab[7][7]=0;
tab[7][8]=5;
tab[8][0]=0;
tab[8][1]=0;
tab[8][2]=0;
tab[8][3]=0;
tab[8][4]=8;
tab[8][5]=0;
tab[8][6]=0;
tab[8][7]=7;
tab[8][8]=9;}


for(i=0;i<=8;i++)
{
for(j=0;j<=8;j++)
{
if (tab[i]=i & tab[j]=j)
{
cout<<"erreur!try again"<<endl;
}
else cout<<"reponse correcte!"<<endl;
}
}




return 0 ;
}
0
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
31 mai 2009 à 21:09
Déjà, je pense que tu aurais intérêt à utiliser ce genre de déclaration pour tab[9][9] :
    int tab[9][9]={5, 3, 0, 0, 7, 0, 0, 0, 0,
                   6, 0, 0, 1, 9, 5, 0, 0, 0,
                   0, 9, 8, 0, 0, 0, 0, 6, 8,
                   ...
                  };
Pour la suite du code, voici une GROSSE erreur !!! et sa correction :
tab[i]=i & tab[j]=j // en C, ça ne fera pas du tout ce que tu veux !
tab[i]==i && tab[j]==j // ça c'est bien mieux !

0
fk08 Messages postés 16 Date d'inscription dimanche 31 mai 2009 Statut Membre Dernière intervention 2 juin 2009
31 mai 2009 à 21:50
merciii
tu veux dire que cette maniere int tab[9][9]={5, 3, 0, 0, 7, 0, 0, 0, 0,
6, 0, 0, 1, 9, 5, 0, 0, 0,
0, 9, 8, 0, 0, 0, 0, 6, 8, .... est la meme que la maniere que j'ai ecrit: tab[0][0]=5;
tab[0][1]=3;
tab[0][2]=0;
tab[0][3]=0;
tab[0][4]=7;
tab[0][5]=0 ???

voici le code mais avec 5 erreurs seulement :)

#include<iostream>
using namespace std;

void main()
{
int tab [9][9];
int i;
int j; //i is for les colonnes et j for les lignes.

{
for(i=0;i<=8;i++)
{
for(j=0;j<=8;j++)
{
}
}
}

int tab [9][9]=
tab[0][0]=5;
tab[0][1]=3;
tab[0][2]=0;
tab[0][3]=0;
tab[0][4]=7;
tab[0][5]=0;
tab[0][6]=0;
tab[0][7]=0;
tab[0][8]=0;
tab[1][0]=6;
tab[1][1]=0;
tab[1][2]=0;
tab[1][3]=1;
tab[1][4]=9;
tab[1][5]=5;
tab[1][6]=0;
tab[1][7]=0;
tab[1][8]=0;
tab[2][0]=0;
tab[2][1]=9;
tab[2][2]=8;
tab[2][3]=0;
tab[2][4]=0;
tab[2][5]=0;
tab[2][6]=0;
tab[2][7]=6;
tab[2][8]=0;
tab[3][0]=8;
tab[3][1]=0;
tab[3][2]=0;
tab[3][3]=0;
tab[3][4]=6;
tab[3][5]=0;
tab[3][6]=0;
tab[3][7]=0;
tab[3][8]=3;
tab[4][0]=4;
tab[4][1]=0;
tab[4][2]=0;
tab[4][3]=8;
tab[4][4]=0;
tab[4][5]=3;
tab[4][6]=0;
tab[4][7]=0;
tab[4][8]=1;
tab[5][0]=7;
tab[5][1]=0;
tab[5][2]=0;
tab[5][3]=0;
tab[5][4]=2;
tab[5][5]=0;
tab[5][6]=0;
tab[5][7]=0;
tab[5][8]=6;
tab[6][0]=0;
tab[6][1]=6;
tab[6][2]=0;
tab[6][3]=0;
tab[6][4]=0;
tab[6][5]=0;
tab[6][6]=2;
tab[6][7]=8;
tab[6][8]=0;
tab[7][0]=0;
tab[7][1]=0;
tab[7][2]=0;
tab[7][3]=4;
tab[7][4]=1;
tab[7][5]=9;
tab[7][6]=0;
tab[7][7]=0;
tab[7][8]=5;
tab[8][0]=0;
tab[8][1]=0;
tab[8][2]=0;
tab[8][3]=0;
tab[8][4]=8;
tab[8][5]=0;
tab[8][6]=0;
tab[8][7]=7;
tab[8][8]=9;


for(i=0;i<=8;i++)
{
for(j=0;j<=8;j++)
{
if (tab[i]=i && tab[j]=j)

cout<<"erreur!try again"<<endl;

else

cout<<"reponse correcte!"<<endl;
}
}
return 0;
}

les erreurs sont :1-'tab' : redefinition
2-'initializing' : cannot convert from 'int' to 'int [9][9]'
There are no conversions to array types, although there are conversions to references or pointers to arrays //je ne comprends pas qu'est ce qu'il veut
3-'=' : cannot convert from 'bool' to 'int [9]'
4-'main' : 'void' function returning a value.
5- see declaration of 'main'


est ce que ce code est valide pour executer un sudoku ou je dois ajouter qq chose ???
merci d'avance
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
31 mai 2009 à 22:00
Soit tu fais
int tab [9][9]; // Attention pas de = ici
tab[0][0]=5;
tab[0][1]=3;
tab[0][2]=0;
tab[0][3]=0;
tab[0][4]=7;
Soi tu fais
int tab [9][9]={ 5, 3, 0, 0, 7, 0, 0, 0, 0,
                 6, 0, 0, 1, 9, 5, 0, 0, 0,
                 0, 9, 8, 0, 0, 0, 0, 6, 8,

                 ...

               }; // ne pas oublier le ;
Les deux méthodes (bien utilisées) donnent le même résultat
Quand tu fais tab[9][9]; toutes les cases sont initialisées à 0 puis tu les modifies une à une
Quand tu fais tab[9][9]={ ... } les cases sont initialisées avec les valeurs précisées dans les accolades, éventuellement avec des 0 pour compléter...

Avec ton code, toujours pareil : if (tab[i]=i && tab[j]=j) ne donne pas ce que tu veux
Pour comparer deux valeurs on utilise ==, l'opérateur = c'est pour l'affectation
De plus i est un entier et tab[i] est un tableau, utilise tab[i][j]==i par exemple...
0
fk08 Messages postés 16 Date d'inscription dimanche 31 mai 2009 Statut Membre Dernière intervention 2 juin 2009
31 mai 2009 à 22:06
mais quand j'ecris == les erreurs augmentent
0
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
1 juin 2009 à 01:16
C'est parce qu'à mon avis tu n'écris pas ce que tu veux obtenir !!!
Je pense que tu veux faire ce genre de code :
for (int k=0; k<9; k++)
for (int i1=0; i1<9; i1++)
for (int i2=i1+1; i2<9; i2++)
{
    if (tab[i1][k]==tab[i2][k])
         std::cout << "erreur ! try again" << endl;
    else std::cout << "reponse correcte !" << endl;
}
Sinon il va falloir que tu expliques (en français) ce que tu veux pour qu'on puisse t'aider !
0
fk08 Messages postés 16 Date d'inscription dimanche 31 mai 2009 Statut Membre Dernière intervention 2 juin 2009
31 mai 2009 à 22:30
je ne comprends pas cette partie ..cela veut dire que ma methode est fausse ?
//Quand tu fais tab[9][9]; toutes les cases sont initialisées à 0 puis tu les modifies une à une
Quand tu fais tab[9][9]={ ... } les cases sont initialisées avec les valeurs précisées dans les accolades, éventuellement avec des 0 pour compléter...

code avec 4 erreurs....am sorry i am asking too many questions....
#include<iostream>
using namespace std;

void main()
{
int tab [9][9];
int i;
int j; //i is for les colonnes et j for les lignes.

{
for(i=0;i<=8;i++)
{
for(j=0;j<=8;j++)
{
}
}
}

int tab [9][9];
tab[0][0]=5; //ou,5, 3, 0, 0, 7, 0, 0, 0, 0, [0] //6, 0, 0, 1, 9, 5, 0, 0, 0, [1]
tab[0][1]=3; //0, 9, 8, 0, 0, 0, 0, 6, 0, [2] //8, 0, 0, 0. 6. 0. 0. 0. 3, [3]
tab[0][2]=0;
tab[0][3]=0;
tab[0][4]=7;
tab[0][5]=0;
tab[0][6]=0;
tab[0][7]=0;
tab[0][8]=0;
tab[1][0]=6;
tab[1][1]=0;
tab[1][2]=0;
tab[1][3]=1;
tab[1][4]=9;
tab[1][5]=5;
tab[1][6]=0;
tab[1][7]=0;
tab[1][8]=0;
tab[2][0]=0;
tab[2][1]=9;
tab[2][2]=8;
tab[2][3]=0;
tab[2][4]=0;
tab[2][5]=0;
tab[2][6]=0;
tab[2][7]=6;
tab[2][8]=0;
tab[3][0]=8;
tab[3][1]=0;
tab[3][2]=0;
tab[3][3]=0;
tab[3][4]=6;
tab[3][5]=0;
tab[3][6]=0;
tab[3][7]=0;
tab[3][8]=3;
tab[4][0]=4; //4,0,0,8,0,3,0,0,1 [4]
tab[4][1]=0;
tab[4][2]=0;
tab[4][3]=8;
tab[4][4]=0;
tab[4][5]=3;
tab[4][6]=0;
tab[4][7]=0;
tab[4][8]=1;
tab[5][0]=7; //7,0,0,0,2,0,0,0,6 [5]
tab[5][1]=0;
tab[5][2]=0;
tab[5][3]=0;
tab[5][4]=2;
tab[5][5]=0;
tab[5][6]=0;
tab[5][7]=0;
tab[5][8]=6;
tab[6][0]=0; //0,6,0,0,0,0,2,8,0 [6]
tab[6][1]=6;
tab[6][2]=0;
tab[6][3]=0;
tab[6][4]=0;
tab[6][5]=0;
tab[6][6]=2;
tab[6][7]=8;
tab[6][8]=0;
tab[7][0]=0; //0,0,0,4,1,9,0,0,5 [7]
tab[7][1]=0;
tab[7][2]=0;
tab[7][3]=4;
tab[7][4]=1;
tab[7][5]=9;
tab[7][6]=0;
tab[7][7]=0;
tab[7][8]=5;
tab[8][0]=0; //0,0,0,0,8,0,0,7,9 [8]
tab[8][1]=0;
tab[8][2]=0;
tab[8][3]=0;
tab[8][4]=8;
tab[8][5]=0;
tab[8][6]=0;
tab[8][7]=7;
tab[8][8]=9;



for(i=0;i<=8;i++)
{
for(j=0;j<=8;j++)
{
if (tab[i]=i && tab[j]=j)

cout<<"erreur!try again"<<endl;

else

cout<<"reponse correcte!"<<endl;
}
}
return 0;
}
0
Utilisateur anonyme
31 mai 2009 à 22:42
Salut,

Je ne fais pas de C++ mais :

void main()
{
int tab [9][9];
int i;
int j; //i is for les colonnes et j for les lignes.

{
for(i=0;i<=8;i++)
{
for(j=0;j<=8;j++)
{
}
}
}

Il y a un bleme dans tes accolades non ?

int j; //i is for les colonnes et j for les lignes.

{ <== rien ne justifie l'ouverture de celle-à

0
fk08 Messages postés 16 Date d'inscription dimanche 31 mai 2009 Statut Membre Dernière intervention 2 juin 2009
31 mai 2009 à 22:47
oui ca ne sert a rien vraiment
0
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
1 juin 2009 à 00:55
En fait on peut ouvrir des accolades comme ça, pour déclarer des variables à portée réduites...

Exemple :
{
    int i;
    for (i=0; i<10; i++)
    {

    }
} // i est détruit par la fermeture de l'accolade
Même si dans ce cas précis on préférerait cette écriture :
    for (int i=0; i<10; i++)
    {

    } // i est détruit par la fermeture de l'accolade
0
Utilisateur anonyme
31 mai 2009 à 22:59
De plus,

En C, void ne retourne pas de valeur; or ton main lui en retourne
4-'main' : 'void' function returning a value.

plutot un

int main()
{
bla bla bla;
}

et heu j'connais pas le C++, mais il n'y a pas moyen de factoriser tes tab ?
pcq les
tab [x][y]=z
etc
etc
etc

C'est un poil lourd et rébarbatif
0
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
1 juin 2009 à 00:57
La factorisation des tab se fait comme je l'ai expliqué plus haut, dès l'initialisation
    int tab[9][9]={5, 3, 0, 0, 7, 0, 0, 0, 0,
                   6, 0, 0, 1, 9, 5, 0, 0, 0,
                   0, 9, 8, 0, 0, 0, 0, 6, 8,
                   ...
                  };
En plus c'est plus clair car on "voit" la grille de Sudoku
0
fk08 Messages postés 16 Date d'inscription dimanche 31 mai 2009 Statut Membre Dernière intervention 2 juin 2009
31 mai 2009 à 23:44
j'ai eu un erreur a la fin qui est fatal error unexpected end of file....apres ca j'ai verifier tous les accolades....et j'ai ajoute apres #include <iostream>
#include<stdafx.h>
et j'ai eu un autre erreur qui est :"Cannot open include file: 'stdafx.h': No such file or directory"
comment puis-je l'enlever ?? ou il y a qq chose qui peut le remplacer ??
merci d'avance
0
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
1 juin 2009 à 01:02
essaye avec ce début de code
#include <iostream>
#include "stdafx.h"
Et comme le disais boisdulait il faut faire un int main()
0
fk08 Messages postés 16 Date d'inscription dimanche 31 mai 2009 Statut Membre Dernière intervention 2 juin 2009
1 juin 2009 à 01:22
j'ai mis void main() est ce que ca differe de int main ()
quand j'enleve le "stdafx.h" je recois 3 erreurs et quand je le met c 1 erreur.....qui est l'errur de "no such file or directory"
0
fk08 Messages postés 16 Date d'inscription dimanche 31 mai 2009 Statut Membre Dernière intervention 2 juin 2009
1 juin 2009 à 01:26
les 3 erreurs sont si j'enleve le stdafx.h >>
1-'tab' : redefinition
2-'int' : forcing value to bool 'true' or 'false' (performance warning)
3-'=' : left operand must be l-value
4-'=' : cannot convert from 'bool' to 'int [9]'

j'ai demande au M des TD il ma dit d'enlever stdafx.h parce que ca sert a rien mais quand je l'enleve il me parait ces 4 erreurs je ne sais pas quoi faire ??
en plus il ya une partie que je comprends pas :void insertionSort(int*, int); ??
0
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
1 juin 2009 à 01:33
Je ne sais pas à quoi sert stdafx, mieux vaut ne pas t'en servir pour l'instant...

1-'tab' : redefinition
Tu écris deux fois int tab [9][9];
Enlèves-en un des deux

2-'int' : forcing value to bool 'true' or 'false' (performance warning)
3-'=' : left operand must be l-value

Il faut que tu utilises == et non pas =

4-'=' : cannot convert from 'bool' to 'int [9]'
Tu utilises tab[i] comme un int alors qu'il est de type int[9]
0
fk08 Messages postés 16 Date d'inscription dimanche 31 mai 2009 Statut Membre Dernière intervention 2 juin 2009
1 juin 2009 à 01:38
1-('=' : left operand must be l-value
Il faut que tu utilises == et non pas = ) ce que j'ai compris que == pour faire une comparaison et = pour exprimer l'egalite...et dans mon cas c une egalite en plus si je met == le nb. d'erreurs augmentent ?? je veux dire au rpog s'il trouve 2 nombres repetee il fait apparaitre un message "erreur"

2-'=' : cannot convert from 'bool' to 'int [9]'
Tu utilises tab[i] comme un int alors qu'il est de type int[9]
>>je ne comprends pas cette partei qu;est ce que je dois faire ??
0
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
1 juin 2009 à 02:01
tab est une matrice 9x9 (un tableau de tableau)
tab[i] est une ligne du tableau (un tableau d'entier)
tab[i][j] est un entier

Si tu fais tab[i]=i, ça veut dire que tu donnes la valeur i à la ligne i !!!
Mais une ligne ce n'est pas un entier... D'où l'erreur l-value

Et puisque tu fais "&&" après il considère que tab[i]=i est un bool,
Or une fois l'affectation "=i" effectuée le programme considère que c'est tab[i] qui est un bool !!!
Or c'est toujours le même problème, tab[i] est un tableau...
D'où l'erreur convert from 'bool'

Il faut que tu utilises UNIQUEMENT des entiers sous la forme tab[i][j]
Si tu écris tab, ou tab[i] ça ne suffit pas !

De plus pour que tu obtienne un bool (pour faire ton if)
IL FAUT que tu fasses une comparaison avec "=="
Si tu fais juste "=" ça modifie la valeur à gauche mais ça ne compare RIEN !

Exemple :
int i=3;
if (i=0) cout << "i vaut 0";
else cout << "i différent 0";
En fait ici, à la deuxième ligne on modifie i en 0, on ne le compare pas
Du coup la comparaison est effectuée avec la valeur de i (donc 0, c'est à dire false)
Donc le programme affichera tout le temps "i vaut 0" alors que i valait 3 :(
Mais il n'y a plus le problème si tu remplaces =, par ==
0
fk08 Messages postés 16 Date d'inscription dimanche 31 mai 2009 Statut Membre Dernière intervention 2 juin 2009
1 juin 2009 à 02:11
si j'ecris == eu erreur convienne qui est ('==' : no conversion from 'int' to 'int *')??

voici cette partie est ce vous pouvez me faire les chagements necessaire stp ??

for(i=0;i<=8;i++)
{
for(j=0;j<=8;j++)
{
if (tab[i]==i && tab[j]==j)

cout<<"erreur!try again"<<endl;

else

cout<<"reponse correcte!"<<endl;
}
}
0
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
1 juin 2009 à 02:24
Parce qu'il faut corriger toutes erreurs en même temps ;)

tab[i] est un tableau ! (en fait c'est un pointeur) son type c'est int*
On ne peux pas comparer un entier avec un tableau, c'est absurde !

Il faut TOUJOURS que tu fasses tab[i][j]== et non pas juste tab[i]==
0
fk08 Messages postés 16 Date d'inscription dimanche 31 mai 2009 Statut Membre Dernière intervention 2 juin 2009
1 juin 2009 à 02:29
0 erreur :D:D
main je ne sais pas quoi faire maintenant pour l'executer ??
0
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
1 juin 2009 à 02:35
Ça dépend ce que tu veux faire, pour l'instant tu as ta grille de Sudoku
    int tab [9][9]={ 5, 3, 0,  0, 7, 0,  0, 0, 0,
                     6, 0, 0,  1, 9, 5,  0, 0, 0,
                     0, 9, 8,  0, 0, 0,  0, 6, 0,
                     
                     8, 0, 0,  0, 6, 0,  0, 0, 3,
                     4, 0, 0,  8, 0, 3,  0, 0, 1,
                     7, 0, 0,  0, 2, 0,  0, 0, 6, 
                     
                     0, 6, 0,  0, 0, 0,  2, 8, 0,
                     0, 0, 0,  4, 1, 9,  0, 0, 5,
                     0, 0, 0,  0, 8, 0,  0, 7, 9
                   };
Mais à vrai dire je n'ai pas compris l'intérêt de ta "vérification" try again...

De toute façon, avec le code tel quel, tu n'iras pas bien loin... Tu as encore du boulot !
0
fk08 Messages postés 16 Date d'inscription dimanche 31 mai 2009 Statut Membre Dernière intervention 2 juin 2009
1 juin 2009 à 02:37
de toute facon il m'a pas donner qq chose
0
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
1 juin 2009 à 02:41
Peut-être qu'avec un system("PAUSE"); avant le return 0; ça ira mieux...
#include<iostream>
using namespace std;

int main()
{
    int tab [9][9]={ ... };

    for(int i=0; i<9; i++) // ième colonne
    for(int j=0; j<9; j++) // jème ligne
    {
        if (tab[i][j]==i && tab[i][j]==j)
             cout << "erreur ! try again " << endl;
        else cout << "reponse correcte ! " << endl;
    }
    
system("PAUSE");
return 0 ;
}
Ici ça n'affiche que des "réponses correctes" même si le test n'a aucun sens pour moi...
0
fk08 Messages postés 16 Date d'inscription dimanche 31 mai 2009 Statut Membre Dernière intervention 2 juin 2009
1 juin 2009 à 17:59
salut,
je voudrais savoir quel sont les etapes que je dois ecrire en c++ pour faire un tableau [9][9]
merci d'avance
0
fk08 Messages postés 16 Date d'inscription dimanche 31 mai 2009 Statut Membre Dernière intervention 2 juin 2009
1 juin 2009 à 18:00
j'ai ecrit dans le code :
int tab[9][9];
int i ;
int j ; //mais je crois que c insuffisant pour declarer le tableau.
0
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
1 juin 2009 à 18:41
int tab[9][9]; suffit à créer un tableau de 81 cases (initialisées avec des 0)
Tu accèdes au données en faisant tab[i][j] avec i et j entre 0 et 8

Remarque : Il y a d'autres méthodes d'accès liées aux pointeurs, mais il vaut mieux que tu n'utilises que celle avec [i][j]
0
fk08 Messages postés 16 Date d'inscription dimanche 31 mai 2009 Statut Membre Dernière intervention 2 juin 2009
2 juin 2009 à 15:19
a quoi ca sert cette ligne dans le code :
cout<<i<<"| ";
merci.
0
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
2 juin 2009 à 16:38
ça affiche la valeur de i puis une barre verticale "|"

exemple :
for (int i=0; i<5; i++)
    cout << i << "| ";

0| 1| 2| 3| 4|
0