Comment peux t’on déclaré tableau de N colonne et N ligne, dont l’utilisateur doit saisir N.
Car je suis obligé de le changé a la main dans de Code Source.
/* carre magique de coté impairs */
int carre[N][N];
.....
/* carre magique de coté impairs */
int carre[N][N];
.....
smeet a écrit :
Ca me parait faisable et tres simple en plus !
Dans ton main, tu demandes le N a l'utilisateur :
int main(void){
int N = demande_alutilisateur("un entier")
carreMagique(N);
}
et ta fonction
void carreMAgique(N){
int carre[N][N];
...
}
Ou alors, avec un parametre passe en liogne de commande . Dites moi si je me suis trompe...
janjan2 a écrit :
ce n'est pas possible
mais tu peux allouer un espace memoire et simuler un tableau avec une macro:
int *carrebuf;
int N;
//saisir N
carrebuf=malloc(N*N*sizeof(int));
#define carre(X,Y) (*(carrebuf+(N*Y+X)*sizeof(int)))
void nbcote()
{
cout << "Nombre de cote :";
cin >> N;
cout << endl;
pas=N-1;
};
void pause(void)
{
int lettre=0;
cout << "Veuillez appuyer sur la touche Echap" << endl;
for (;;)
{
lettre = (int) getch();
if (lettre==27) break;
};
};
void main()
{
for (;;)
{
nbcote();
if (N==0 || N==1) break;
carrebuf=new int[N*N];
init_tab(); // initialiser le carre à 0
//affichage();
//pause
creer(); // creer le carre
affichage(); // afficher le carre
cout << "somme = " << resultat(N) << endl;
pause();
delete [] carrebuf;
}
};
void init_tab(void)
{
for (i=0;i<N;i++)
{
for (j=0;j<N;j++)
{
carrebuf[N*i+j]=0;
};
};
};
smeet a écrit :
Ca me parait faisable et tres simple en plus !
Dans ton main, tu demandes le N a l'utilisateur :
int main(void){
int N = demande_alutilisateur("un entier")
carreMagique(N);
}
et ta fonction
void carreMAgique(N){
int carre[N][N];
...
}
Ou alors, avec un parametre passe en liogne de commande . Dites moi si je me suis trompe...
janjan2 a écrit :
apprends le C avant de parler on ne peut pas declarer de tableaux avec des variables
janjan2
a écrit : KK> ué,je sais, mais c'est importable...
// on veut creer un tableau de n lignes et m colonnes (n et m des int) et y acceder par tablo[x][y];
// on va faire un tablo de int ... mais on peut faire avec n'importe kel tye biensur ^^
int **tablo;
int n=10,m=20,a;
tablo = (int**)malloc(n*sizeof(int));
for (a=0 ; a<n ; a++)
{
tablo[a] = (int*)malloc(m*sizeof(int));
}
a=tablo[2][6];
// desallocation !!!!!!!!!
for(a=0 ; a<n ; a++)
{
free(tablo[a]);
}
free(tablo);
nEUrOne a écrit :
genre sous vs, ca marche pas
squale92 a écrit :
et puis, vu que MSVC est sorti en 98, ça doit être dur de reconnaitre le standard sorti en 99