Salut
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.
#include <stdio.h>
#define N 3 //nombre de cote impair
/* carre magique de coté impairs */
int carre[N][N];
.....
cheveux-tilleuils-écartelés-sur-visage-
taxiphone-de-l'attente-souvenir-coma-
trauma-de-vieillard-géranium-camé-
baisers-tranxène-coagulés-sur-miroir-
hygiaphone-t.v.-lunettes-noires-pyjama-rayé-
wo is dast blut
ich habe durst
smeet Le 12/08/2002 à 15:50 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...
Cinq font un et un font cinq : le tout est UNITE.
C'est dans l'incompréhension que je suscite que je trouve ma raison d'être.
Je suis moi, et je le suis parce que les autres ne le sont pas, et que ce sont eux qui forment ma personne.
Inconscience et déraison sont source d'imagination.
Au delà de ma conscience et de mon inconscient, mes rêves créent la réalité.
java aussi c'est trs utile
(et C++ aussi)
et perl (ou python mais faut au moins comprendre le perl)!

fabetal_ > Hier, je me suis fait monter par un pote
redangel > et en chevals, ça donne quoi?
Nil> OMG I think I'm gay
PI Le 27/08/2002 à 20:33Edité par PI le 28/08/2002 à 07:44 je suis finalement arrivé à créé se tableau qui n'etait pas possible
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;
};
};
};
o fait quel la signification du
#define carre(X,Y) (*(carrebuf+(N*Y+X)*sizeof(int)))
car je le l'ai pas utilisé.
et Merci beaucoup
cheveux-tilleuils-écartelés-sur-visage-
taxiphone-de-l'attente-souvenir-coma-
trauma-de-vieillard-géranium-camé-
baisers-tranxène-coagulés-sur-miroir-
hygiaphone-t.v.-lunettes-noires-pyjama-rayé-
wo is dast blut
ich habe durst
Pourquoi allouer plein de blocs ?
Je trouve nettement plus simple de n'allouer qu'un zone de mémoire que tu partages en une table de pointeur et n tableaux de m éléments et initialises la table des pointeur.
Comme ça, la libération du tableau se fait tout simplement.
Et ma solution à moi (qui, je rappelle, est du C standard (ISO C99))?
int main(void){
int N = demande_alutilisateur("un entier")
int carre[N][N];
...
}
C'est compilable avec n'importe quelle version pas trop ancienne de GCC. (En tout cas, GCC >= 2.95 le permet.)
KK > et a part GCC ... y a d'autre compilo ki supporte ca ? parce ke ca a pas l'air tres portable ce truc :/

pwet
oué, mais .net, je connais pas
(enfin, je connais de nom, mais rien de plus)