Probleme en c++
fk08
Messages postés
16
Date d'inscription
Statut
Membre
Dernière intervention
-
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
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.
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
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 ?
Si tu utilises une ou plusieurs classes, as-tu penser au ";" à la fin de chaque classe ?
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 ;
}
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 ;
}
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 !
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
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Soit tu fais
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...
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...
mais quand j'ecris == les erreurs augmentent
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 :
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 !
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;
}
//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;
}
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-à
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-à
oui ca ne sert a rien vraiment
En fait on peut ouvrir des accolades comme ça, pour déclarer des variables à portée réduites...
Exemple :
Exemple :
{ int i; for (i=0; i<10; i++) { } } // i est détruit par la fermeture de l'accoladeMê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
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
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
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
#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
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"
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"
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); ??
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); ??
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]
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]
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 ??
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 ??
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 :
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 ==
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 ==
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;
}
}
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 erreur :D:D
main je ne sais pas quoi faire maintenant pour l'executer ??
main je ne sais pas quoi faire maintenant pour l'executer ??
Ça dépend ce que tu veux faire, pour l'instant tu as ta grille de Sudoku
De toute façon, avec le code tel quel, tu n'iras pas bien loin... Tu as encore du boulot !
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 !
de toute facon il m'a pas donner qq chose
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...
salut,
je voudrais savoir quel sont les etapes que je dois ecrire en c++ pour faire un tableau [9][9]
merci d'avance
je voudrais savoir quel sont les etapes que je dois ecrire en c++ pour faire un tableau [9][9]
merci d'avance
j'ai ecrit dans le code :
int tab[9][9];
int i ;
int j ; //mais je crois que c insuffisant pour declarer le tableau.
int tab[9][9];
int i ;
int j ; //mais je crois que c insuffisant pour declarer le tableau.