Probleme d'impression en c

Fermé
cadrick Messages postés 15 Date d'inscription vendredi 27 janvier 2006 Statut Membre Dernière intervention 10 mars 2011 - 15 déc. 2010 à 12:22
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 - 17 déc. 2010 à 06:25
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
A voir également:

3 réponses

KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 020
15 déc. 2010 à 12:47
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
cadrick Messages postés 15 Date d'inscription vendredi 27 janvier 2006 Statut Membre Dernière intervention 10 mars 2011
15 déc. 2010 à 15:07
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
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 020
15 déc. 2010 à 19:12
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
cadrick Messages postés 15 Date d'inscription vendredi 27 janvier 2006 Statut Membre Dernière intervention 10 mars 2011
16 déc. 2010 à 23:46
en fait j'avais oublié, j'utilise MPI
0
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 020
17 déc. 2010 à 06:25
je ne connais pas MPI, mais ça ne change en rien ma réponse
0