p'tit incompréhension de mon propre code. - C - Programmation
Marsh Posté le 28-11-2003 à 19:45:36
troll ?
pour répondre à ta question finale, RIEN. Le ";" après le for fait que la boucle ne répète rien du tout
Marsh Posté le 28-11-2003 à 19:48:20
SmilM a écrit : |
C'est pas du C, t'as des variables déclarées après des instructions.
Sinon j'ai pas tout regardé mais jette un coup d'oeil sur ce que j'ai mis en gras.
[edit] zut les balises gras marchent pas dans des blocs de code
[edit] ni dans le fixed.
Marsh Posté le 28-11-2003 à 19:48:21
Non, pas troll du tout.
Relis le topic.
le "for(unsigned long i=0;i<1;i++);" est obligé si je veux que ca marche.
Compile le code chez toi, tu verras par toi meme
Marsh Posté le 28-11-2003 à 19:50:40
mes varianbles sont déclarés bien avant les instructions sur ce coup là.(et que ca soit plus du C ou C++, ou que ca soit plus au norme, cela m'importe peu.
Marsh Posté le 28-11-2003 à 19:52:02
JagStang a écrit : mdr tu plaisante |
Compile ca :
Code :
|
et compile ca :
Code :
|
Au cas ou ca serait un bug de compilo => j'utilise DevC++
Marsh Posté le 28-11-2003 à 19:52:07
SmilM a écrit : mes varianbles sont déclarés bien avant les instructions sur ce coup là.(et que ca soit plus du C ou C++, ou que ca soit plus au norme, cela m'importe peu. |
tu respectes les normes, c'est du C, tu respectes pas c'est pas du C.
c'est pas parce que ton compilo te retapisse pas ta chambre en vert que c'est du C.
Marsh Posté le 28-11-2003 à 19:54:33
unsigned long tab[1000][1000]; --> static pas bien
unsigned long b; --> pas initilisé : pas bien
Marsh Posté le 28-11-2003 à 20:00:59
JagStang a écrit : unsigned long tab[1000][1000]; --> static pas bien |
long tab[1000][1000]; --> static pas bien
Comment ca static ?
tab[][]; provoque 5 erreurs chez moi.
Enfin bon, j'ai pas trop compris l'histoire des variables static, enfin, j'ai cru comprendre que c'était des variables qui ne se reinitialiser pas a chaque passage dans la fonction mais uniquement au 1er passage, et qu'il garde donc la valeur de cette variable en memoire pour la prochaine utilisation de la fonction.
Marsh Posté le 28-11-2003 à 20:11:11
Code :
|
Ton for ne servait à rien, par contre en remettant les déclarations de variables avant les instructions, tout marche... bizarre non?
Compile le code au dessus...
Citation : printf("----%d----\n",tab[b][j]); |
T'as rien dans b, ni dans j, pourquoi tu met cette ligne ???
Marsh Posté le 28-11-2003 à 20:12:16
SquiZz a écrit : et mes remarques en gras dans ton code ? |
heu voui mais j'ai pas bien compris ce que tu voulais me montrer...désolé, je débute.
Marsh Posté le 28-11-2003 à 20:14:15
Zipo désolé pour cette ligne, effectivement elle ne sert a rien, elle me servait plus tot dans mon "develloppement" mais plus maintenant, surtout que vu que j'ai pas initialiser b et j elles sont obseletes.
j'édite
Marsh Posté le 28-11-2003 à 20:15:32
SmilM a écrit : Zipo désolé pour cette ligne, effectivement elle ne sert a rien, elle me servait plus tot dans mon "develloppement" mais plus maintenant, surtout que vu que j'ai pas initialiser b et j elles sont obseletes. |
Ben si tu met toutes les déclarations de var avant les instructions ca marche
Marsh Posté le 28-11-2003 à 20:16:08
un tableau en C ca commence a quel indice ?
quand j vaut 0, combien vaut j-1 (attention j est un unsigned long) ?
refaire le même exercice avec la variable b.
Est ce que c'est c'est la cause de ton problème ? j'en sais rien.
[edit] question subsidiaire, qu'est ce qu'il y a à l'indice 4294967295 d'un tableau ?
Marsh Posté le 28-11-2003 à 20:21:36
le iostream.h t'en fait quoi ? le stdlib.h ?
1000*1000*4 octets ça te parait pas un peu gros pour ta pile ?
Marsh Posté le 28-11-2003 à 20:24:22
Taz a écrit : le iostream.h t'en fait quoi ? le stdlib.h ? |
oui, je sais, c enorme mais ca on s'en moque, remplace le par 20 si tu veux.
Marsh Posté le 28-11-2003 à 20:26:31
SquiZz a écrit : un tableau en C ca commence a quel indice ? |
c'est vrai que ca pose un probleme, et c'est pour ca que quand je compile et que je donne nbligne=10, il ne me donne que 9 ligne de résultat.
En fait il donne 10 ligne de résultat, dont la 1er qui est vide
Marsh Posté le 28-11-2003 à 20:30:06
SmilM a écrit : |
mais meme dans la 2eme tu sors du tableau lorsque t'as b=1 et j=0 et que tu fais tab[b][j]=tab[b-1][j-1]+tab[b-1][j];
ya un pb
Marsh Posté le 28-11-2003 à 20:36:05
hum oui c'est vrai, et puis de toute facon il est tout crado mon code.
J'essayerais de refaire cette exo prochainement.
Merci de votre aide
En tout cas j'ai (presque) reussi a faire cet exercice et ya des personnes de la classe à mon frere qui n'ont pas reussi à le faire en CAML
Marsh Posté le 28-11-2003 à 20:37:42
SmilM a écrit : hum oui c'est vrai, et puis de toute facon il est tout crado mon code. |
reviens quand t'auras compris que programmer ne consiste pas a tapper sur des touches au hazard et dire "j'ai réussi" quand ca compile.
Marsh Posté le 28-11-2003 à 20:38:42
tu te rends compte que tu n'a pas besoin de toute la matrice ? il te faut juste les deux dernière lignes ...
Marsh Posté le 28-11-2003 à 20:41:20
Taz a écrit : tu te rends compte que tu n'a pas besoin de toute la matrice ? il te faut juste les deux dernière lignes ... |
Ya bien pire que ca dans son algo
Marsh Posté le 28-11-2003 à 19:37:46
Salut !
Ce soir mon frere est revenu tout joyeux en me disant qu'il avait reussi son TP de Caml et m'a proposer de faire un des exo de son TP, "le triangle pascal".
Je pense que vous connaissez sinon compilez le code qui suit et regarder le résultat, ca va vous paraitre plus clair.
Dans mon code il y'a quelque chose que je ne comprends pas, je l'ai mis parce que j'étais parti sur autre chose (initialiser tout mon tableau a 1, mais c'est bete), et finalement j'en suis arriver a mettre ca :
Et si je mets pas ca...essayer, vous verrez que le triangle pascal ne renvoi plus quelque chose comme ca :
mais il renvoi plutot :
Et je comprends pas pourquoi il fait ca..
voilà le code que j'ai pondu (c'était demandé de le faire en CAML mais n'y connaissant rien au CAML, je l'ai fait en C)
Voilà, donc ma question final est, a quoi sert
surtout que au début tout les variables "b" du programme s'appelait i, mais je les ai renommés pour voir si ca changeai quelque chose, mais non, puisque le "unsigned long i=0" appartient a la boucle for et il est donc comme une variable local a ce bloc.
Merci d'avance.
Message édité par smilm le 28-11-2003 à 20:15:12
---------------
AfterEnd: Batissez un nouveau monde