Probleme d'impression en c

cadrick Messages postés 13 Date d'inscription   Statut Membre Dernière intervention   -  
KX Messages postés 19031 Statut Modérateur -
Bonjour,

j'ai un problème avec printf dans mon code MPI en c

printf("les cartes sont ");
for(i=0;i<6;i++) printf(" %d", msgCard.tirage[i]);
printf("\n la cible est %d",msgCard.cible);
lorsque les 2 premiers printf s'execute le derniers boucles, et si j'inverse en mettant le dernier au dessus des 2 autres alors il imprime bien et les deux autres non

merci

3 réponses

  1. KX Messages postés 19031 Statut Modérateur 3 020
     
    Je ne sais pas ce que tu utilises comme type pour msgCard, en tout cas, il n'y a pas de problème avec les printf :

    typedef struct structCard 
    {
    	int tirage[6];
    	int cible;
    } card;
    
    int main() 
    { 	
    	card msgCard={1,3,5,7,9,11,42};
    	int i;
    	printf("les cartes sont "); 
    	for(i=0;i<6;i++)
    		printf(" %d", msgCard.tirage[i]);
    	printf("\n la cible est %d",msgCard.cible);
    } 
    
    les cartes sont  1 3 5 7 9 11
     la cible est 42
    0
  2. cadrick Messages postés 13 Date d'inscription   Statut Membre Dernière intervention  
     
    msgCard est de type:
    typedef struct nbre{
    int tirage[6];
    int cible;
    } SetNbre;

    msgCard est generé par:

    SetNbre genTirageNber(){
    int i, j=0;
    int isUse[6];
    SetNbre jeu;

    srand( (unsigned)(time( NULL )));
    for(i=0;i<6;i++){
    do{
    jeu.tirage[i]=SetCard[rand()%13];
    }while(isThere(jeu.tirage[i], isUse));

    isUse[j]=jeu.tirage[i];
    j++;

    }

    do{
    jeu.cible=rand();
    } while( (jeu.cible < 100) || (jeu.cible > 999));

    return jeu;
    }

    merci de bien vouloir voir mon problème
    0
  3. KX Messages postés 19031 Statut Modérateur 3 020
     
    Quand fais-tu appelles à tes printf ?

    De plus :

    do
    { 
    	jeu.tirage[i]=SetCard[rand()%13]; // qu'est-ce que SetCard ?
    }
    while(isThere(jeu.tirage[i], isUse)); // qu'est-ce que isThere ?

    Enfin, remplace la deuxième boucle :

    do
    { 
    	jeu.cible=rand(); 
    }
    while(jeu.cible<100 || jeu.cible > 999); 
    

    par :

     jeu.cible=100+900*rand()/RAND_MAX; // tirage aléatoire sur [100,1000[
    0
    1. cadrick Messages postés 13 Date d'inscription   Statut Membre Dernière intervention  
       
      en fait j'avais oublié, j'utilise MPI
      0
    2. KX Messages postés 19031 Statut Modérateur 3 020
       
      je ne connais pas MPI, mais ça ne change en rien ma réponse
      0