Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1357 connectés 

  FORUM HardWare.fr
  Programmation

  [c] Mais qu'est ce que je dois mettre?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[c] Mais qu'est ce que je dois mettre?

n°31990
skipcool
La procrastination c'est bon !
Posté le 15-05-2001 à 20:06:09  profilanswer
 

Je craque, alors finalement je demande un tit coup de main..
voila un tit morceau de mon programme. ça plante a tous les coups..
 
quand je lance cette fonction->
voila ce qu'il me met dans le tableau matrice_piece
607
708
809
 
alors que je voudrais  
607
000
809
 
Deuxième bug
Si vous regardez le programme, vous verrez que je posséde 2 variables WIDTH et HEIGHT. Celles ci représente la taille d'une fenêtre. Je souhaite partager cette fenêtre par blocs de 3*3 pixels (d'ou la matrice_piece). Comme d'habitude, g du me planter dans l'init, pasq je sais pas s'il faut que j'y mette...
-----------------------------------------------
#define HEIGHT 9
#define WIDTH 9
 
/*WIDTH et HEIGHT devront etre mis a 210*/
 
int widt=(WIDTH/3)-1;
int heig=(HEIGHT/3)-1;
int matrice_piece[widt][heig];
int trajetx=0;
int trajety=0;
 
void init(void){
  int i,j;
  /* pr initialiser le rand */
  srand(time(0));  
  /* intialise la matrice des numeros de pieces */
  for(i=0;i<=widt;i++)
    for(j=0;j<=heig;j++)
      matrice_piece[i][j]=0;
  /* pr initialiser les coins du tableau */
  matrice_piece[0][0]=6;
  matrice_piece[widt][0]=9;
  matrice_piece[0][heig]=7;
  matrice_piece[widt][heig]=8;
}


---------------
La vie c'est comme une boite de chocolat.
mood
Publicité
Posté le 15-05-2001 à 20:06:09  profilanswer
 

n°31996
wpk
Posté le 15-05-2001 à 20:38:58  profilanswer
 

1.c'est pas bon, en c/c++ les tableaux commecent a 0 et se terminent en n-1
 
donc les for(i=0;i<=heigh;i++)
ca va planter, remplace <= par <
 
2.A l'allocation, tu ne peux pas mettre une variable, faut que ca soit une constante =>
int matrice_piece[(WIDTH/3)-1][(HEIGHT/3)-1];  
si tu as besoin de des constantes, faits 2 autres defines.
 
3.matrice_piece[widt][0] c'est pas bon non plus, tu va te chopper un core dump => widt-1
 
4. en c : matrice_piece [ligne][colonne]
ca t'explique ton probleme
 
matrice_piece[0][0]=6;  
matrice_piece[widt-1][heig-1]=9;  
matrice_piece[0][heig-1]=7;  
matrice_piece[widt-1][0]=8;

n°32006
skipcool
La procrastination c'est bon !
Posté le 15-05-2001 à 21:06:20  profilanswer
 

pr le cout de la variable, je sais... ct pour expliquer...sinon le compilateur y va me faire :pt1cable:  
 
Euh, tu peux me donner une explication pour le fait qu'il me collait quand même les valeurs 7 et 9 aux bons endroits? Pasq en théorie, il fait un peu la gueule, mais sinon...
 
 :lol: la version que tu m'as sortie est la première version de mon programme... je peux te répondre qu'elle ne va pas marcher non plus.. je crois que je vais donner 2 baffes aux compil et basta!


---------------
La vie c'est comme une boite de chocolat.
n°32068
wouatouwou​atou
Posté le 16-05-2001 à 09:42:36  profilanswer
 

Euh... dsl de contredire mais... en c, comme partout je pense, un tableau a deux dimensions... ben, c toi ki decide de ki est la ligne et ki est la colonne...
Donc, tu peux tres bien avoir matrice[colonne][ligne]... :D:D
Enfin, je pense que jai du manquer un episode... :D:D

n°32098
BENB
100% Lux.
Posté le 16-05-2001 à 10:40:34  profilanswer
 

wouatouwouatou a écrit a écrit :

Euh... dsl de contredire mais... en c, comme partout je pense, un tableau a deux dimensions... ben, c toi ki decide de ki est la ligne et ki est la colonne...
Donc, tu peux tres bien avoir matrice[colonne][ligne]... :D:D
Enfin, je pense que jai du manquer un episode... :D:D




On considere en general que les tableaux sont stockes en memoire ligne par ligne il me semble...
donc c c'est stocke dans l'ordre Mat[0][0], Mat[0][1], Mat[0][2], .... Mat [1][0],Mat[1][1],Mat[1][2],...
donc c'est mat[no ligne][no colonne] alors que en FORTRAN par exemple c'est mat(no colonne,no ligne)...
 
Bien entendu tu peux prendre comme reference que tes matrices sont rangees colonnes par colonnes. Et si tu ne fais pas de transition interlangages tu peut meme eventuellement te foutres de comment c'est range en memoire :D


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  [c] Mais qu'est ce que je dois mettre?

 

Sujets relatifs
Je dois passer à l'entretien pour l'UTCJ'ai un site flash et je voudrai mettre un son en boucle?
Script pour mettre en favori?[PHP]mettre des info s dans une table a partir d'une liste
[XSL] on peut mettre du script dedans?Pour mettre le programme en avant plan avec le focus, quelle fct ?
mettre deux pc en réseau ??EASY PHP / APACHE -- METTRE EN PLACE LE SERVEUR FTP ??????comment
[VB] Mettre une image sur un cmdButton mais elle est trop grande ?[PHP]$host : que dois je mettre ?
Plus de sujets relatifs à : [c] Mais qu'est ce que je dois mettre?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR