1

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

2

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)))

smile
avatar
fabetal_ > Hier, je me suis fait monter par un pote
redangel > et en chevals, ça donne quoi?
Nil> OMG I think I'm gay

3

voui la macro c'est une bonne idée, c'est pas indispensable mais c'est bien pratique ...
topjanjan2top
avatar
Il n'a pas de mots
Décrire son mépris
Perdre les rênes
Il a perdu la foi

4

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é.

5

Je connais pas la syntaxe exacte , desole tsss

int void( int nchar , char[] args){
if nchar > 0 then N = getArg(1)
else N = 3
}
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é.

6

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...


apprends le C avant de parler
on ne peut pas declarer de tableaux avec des variables

je pense avoir repondu à PI mais faudrait qu 'il reponde
avatar
fabetal_ > Hier, je me suis fait monter par un pote
redangel > et en chevals, ça donne quoi?
Nil> OMG I think I'm gay

7

"apprends le C avant de parler "
C'est bien pour cela que j'ai demande a me corriger en cas d'erreur...

Dans ce cas, ta reponse est la meilleure solution. Je pensais seulement que ce genre de notation fonctionnait (j'avais oublei combien le C est mal foutou couic)
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é.

8

arf, xcuse j'avais pas lu la derniere lignesmile

en java, ce que tu as ecrit est possible
avatar
fabetal_ > Hier, je me suis fait monter par un pote
redangel > et en chevals, ça donne quoi?
Nil> OMG I think I'm gay

9

Oui, Java, Ada, et lagrande majorite des langages de PLUS HAUT niveau que le C.
Desole d'avoir dit une connerie, je voulais juste essayer d'aider tsss
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é.

10

Mais c'est un atout de connaitre le C car ça reste le language le + utilisé. Surtout sous Linux!!! oui

11

java aussi c'est trs utile
(et C++ aussi)
et perl (ou python mais faut au moins comprendre le perl)!
avatar
fabetal_ > Hier, je me suis fait monter par un pote
redangel > et en chevals, ça donne quoi?
Nil> OMG I think I'm gay

12

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)))

smile


oué, sauf qu'il faut virer le *sizeof(int), car le pointeur à incrémenter est déjà de type int, donc le compilateur comprend.
Là, ta def ne marche que si carrebuf est de type "char". smile


Enfin je crois, peut-être que je dis une connerie.
Non-Webmaster et non-programmeur du site. .Pour tout probleme ou question ,débrouillez vous avec les Webmasters .

«- Pas Moo ! ^^

13

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

14

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...

C'est correct, mais seulement avec GCC ou avec un compilateur C99 (GCC 3 est un compilateur avec un support presque complet du C99 - même en le mode standard "gnu89", mais encore plus avec -std=gnu99, qui rajoute notamment le support pour les for (int i=0;i<10;i++)), pas avec un compilateur qui traîte le C89 seulement.
janjan2 a écrit :
apprends le C avant de parler on ne peut pas declarer de tableaux avec des variables

Si, si on utilise GCC, on peut. tongue
Et: oui, il y a un GCC pour Windows: http://www.mingw.org.


D'ailleurs, avec GCC 3 ou avec un compilateur C99, on peut aussi mettre:
int main(void){
int N = demande_alutilisateur("un entier")
int carre[N][N];
...
}
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

15

KK> ué,je sais, mais c'est importable...
je le fait mais pour les progs que je copte pas porter
et puis si tu donnes des codes d'exemple où il faut preciser la version et le nom du compilo roll
PI> fallait preciser C++
avatar
fabetal_ > Hier, je me suis fait monter par un pote
redangel > et en chevals, ça donne quoi?
Nil> OMG I think I'm gay

16

janjan2
a écrit : KK> ué,je sais, mais c'est importable...

N'oublie pas que GCC lui-même est très portable...
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

17

alalaaaaaaa smile c'est un bon exercice pour bien manipuler les pointeurs ca wink
mais comme vous semblez timides de donner la solution voila la mienne tongue
// 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);
avatar
pwet

18

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.

19

ouiiiiiiiiiiiiin et l'indentation ????? tongue ... fo tout faire soi meme de nos jours wink
avatar
pwet

20

si c pour n'allouer k'une zone memoire autant utiliser la macro de janjan wink
bah c t juste une solution a but pedagogique wink
avatar
pwet

21

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.)
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

22

Oui, et c'est bien pratique smile

23

KK > et a part GCC ... y a d'autre compilo ki supporte ca ? parce ke ca a pas l'air tres portable ce truc :/
avatar
pwet

24

genre sous vs, ca marche pas cow

25

ben mon truc marche tres bien en tout cas ^^
zzz
avatar
pwet

26

nEUrOne a écrit :
genre sous vs, ca marche pas cow

Si M$VC ne comprend pas le ISO C99, c'est le problème de M$, pas le mien. grin
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

27

c'est un peu le bp de tous ceux qui utilisent à la fois GCC et MSVC...

et puis, vu que MSVC est sorti en 98, ça doit être dur de reconnaitre le standard sorti en 99 grin
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

28

squale92 a écrit :
et puis, vu que MSVC est sorti en 98, ça doit être dur de reconnaitre le standard sorti en 99 grin


Heu voué mais c surment compris dana .NET grin
pis de tt facon, faut voir si Borland comprend cela ...

29

oué, mais .net, je connais pas
(enfin, je connais de nom, mais rien de plus)
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall