#26 Le 08/05/2006, à 15:23
- Riicooo
Re : message d'erreur indescriptible
Ce genre de question me plait plus
rand()%3+1;
donne un chiffre au hasard entre 1 et 3
t[i][1]
insere le précédent chiffre dans la case linge i, colonne 1.
Encore une fois, expliques toi !
qu'est-ce que tu veux avoir, et quel résultat tu obtiens ?
Si tu veux seulement savoir si la syntaxe est correcte, alors oui elle l'est.
Hors ligne
#27 Le 08/05/2006, à 16:42
- fred____89
Re : message d'erreur indescriptible
si ma syntaxe est bonne, explique moi pourquoi lorsque je cré un tableau dans lequel je veux les resultat de mon aleatoire, il ne m'afficher pas de valeur entre 1 et 3.mais il m'affiche des valeur gigantesque.
Hors ligne
#28 Le 08/05/2006, à 16:49
- Riicooo
Re : message d'erreur indescriptible
essayes de changer
rand()%3+1;
par
1;
pour voir si cela vient du rand ou si c'est autre chose...
ou sinon postes ton code entierement...
l'erreur vient probablement pas d'ici (les cases sont peut-être simplement pas affectées).
Hors ligne
#29 Le 08/05/2006, à 17:00
- fred____89
Re : message d'erreur indescriptible
#include <stdio.h>
main()
{
int T[10][3];
int i,alea,alea1,alea2;
unsigned int t;
i=0;
t=time();
srand(t);
for( i=0 ; i<10 ; i++ );
{
do
{
alea=rand%3+1;
alea1=rand%3+1;
alea2=rand%3+1;
T[i][1]=alea;
T[i][2]=alea1;
T[i][3]=alea2;
}
while((alea==alea1) || (alea==alea2) || (alea1==alea2));
}
i=1;
do
{
printf("piece %d levier 1 alea = %d //%d\n",i,T[i][1],alea);
printf("piece %d levier 2 alea = %d //%d\n",i,T[i][2],alea1);
printf("piece %d levier 3 alea = %d //%d\n",i,T[i][3],alea2);
i++;
}
while(i<11);
}
Hors ligne
#30 Le 08/05/2006, à 17:13
- Riicooo
Re : message d'erreur indescriptible
PAS de ; à la fin de la ligne ici !!
for( i=0 ; i<10 ; i++ ); <--
{
do
{
alea=rand%3+1;
alea1=rand%3+1;
alea2=rand%3+1;
T[i][1]=alea;
T[i][2]=alea1;
T[i][3]=alea2;
}
while((alea==alea1) || (alea==alea2) || (alea1==alea2));
}
Pourquoi tu ne fait pas un for ici ??
i=1;
do
{
printf("piece %d levier 1 alea = %d //%d\n",i,T[i][1],alea);
printf("piece %d levier 2 alea = %d //%d\n",i,T[i][2],alea1);
printf("piece %d levier 3 alea = %d //%d\n",i,T[i][3],alea2);
i++;
}
while(i<11);
En plus, ton for (en haut) utilise i de 0 à 9 alors que ton while va se 1 à 10 !
Dernière modification par Riicooo (Le 08/05/2006, à 17:23)
Hors ligne
#31 Le 08/05/2006, à 17:34
- fred____89
Re : message d'erreur indescriptible
mais maintenant, apres le ";" en trop il ne s'execute plus
Hors ligne
#32 Le 08/05/2006, à 17:41
- PierreR
Re : message d'erreur indescriptible
Attention, T[i][3] n'existe pas et va provoqier une segfault (pour T[9][3] au moins).
Les tableaux sont indicés à partir de 0 donc si tu fais int T[10][3], tu a :
T[0][0], T[0][1] et t[0][2] mais pas T[0][3] et de même T[10] n'existe pas.
Hors ligne
#33 Le 08/05/2006, à 17:42
- Riicooo
Re : message d'erreur indescriptible
qu'est-ce tu veux dire par
apres le ";"
?? il compile ? il tourne en boucle ?
PierreR a raison aussi, je n'avais même pas vu celle là ! y a du boulot !!
Dernière modification par Riicooo (Le 08/05/2006, à 17:45)
Hors ligne
#34 Le 08/05/2006, à 17:45
- fred____89
Re : message d'erreur indescriptible
il compile mais je n'est pas d'affichage c blanc
Hors ligne
#35 Le 08/05/2006, à 17:47
- Riicooo
Re : message d'erreur indescriptible
#include <stdio.h>
main()
{
int T[10][3];
int i,alea,alea1,alea2;
unsigned int t;
i=0;
t=time();
srand(t);
for( i=0 ; i<10 ; i++ )
{
do
{
alea=rand()%3+1;
alea1=rand()%3+1;
alea2=rand()%3+1;
T[i][0]=alea;
T[i][1]=alea1;
T[i][2]=alea2;
}
while((alea==alea1) || (alea==alea2) || (alea1==alea2));
}
for( i=0 ; i<10 ; i++ )
{
printf("piece %d levier 1 alea = %d //%d\n",i,T[i][0],alea);
printf("piece %d levier 2 alea = %d //%d\n",i,T[i][1],alea1);
printf("piece %d levier 3 alea = %d //%d\n",i,T[i][2],alea2);
}
}
Hors ligne
#36 Le 09/05/2006, à 23:37
- gene69
Re : message d'erreur indescriptible
Edit; sorry j'ai pas vu que le sujet s'etale sur deux pages...
/----
Comment peut on répondre?
est ce que tu as fait un tour sur "man rand" ? et "man srand"? (man 3 à installer si c'est pas encore fait)
est ce que rand() est déclarée?
est ce que val est déclarée?
est ce que i est déclarée?
est ce que t est déclarée?
est ce que tu es sur que ton tableau est correctement aloué?
est ce que tu fais un appel à srand() avant rand?
est ce que val est d'un type compatible avec int?
est ce que i est compatible avec int?
est ce que t est compatible avec int** ?
est ce que i est sur que i ne déborde pas du tableau?
je ne vois pas d'autres bug possible, ya que deux lignes....
PS: mettre des button sur une form c'est pas tres dur...
Dernière modification par gene69 (Le 09/05/2006, à 23:40)
Quand le berger est lâche, le loup chie de la laine.
A (draft) guide to UFO Alien-Invasion
Hors ligne