Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#26 Le 08/05/2006, à 16:23

Riicooo

Re : message d'erreur indescriptible

Ce genre de question me plait plus wink

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, à 17: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, à 17: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, à 18: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, à 18: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, à 18:23)

Hors ligne

#31 Le 08/05/2006, à 18: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, à 18: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, à 18: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, à 18:45)

Hors ligne

#34 Le 08/05/2006, à 18: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, à 18: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 10/05/2006, à 00: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 10/05/2006, à 00:40)


Quand le berger est lâche, le loup chie de la laine.
A (draft) guide to UFO Alien-Invasion

Hors ligne