Tableau en c
Résolu
abali12
Messages postés
58
Statut
Membre
-
Char Snipeur Messages postés 10112 Date d'inscription Statut Contributeur Dernière intervention -
Char Snipeur Messages postés 10112 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
une partie de mon code:
je souhaite remplir le tableau itabchoix avec des valeurs de itabchiffres qui sont prises au hasard; pour l'instant y a pas de probleme ,j'ai reussi a faire.
je dois faire en sorte d'avoir un "ihasard" different pour chaque case que je vais remplir de itabchoix.
En gros si ihasard=14 par ex => itabchoix[0]=itabchiffres[14] càd 7
En suite si ihasard=2 par ex => itabchoix[1]=itabchiffres[2] càd 1
et ainsi de suite pour chaque case.
il faut juste que ihasard ne soit pas egal a 14 et 2 les cas suivants.
Si une case du tableau itabchiffres a été utiliser, il faut qu'il ne puisse pas etre reutilliser.
Je sais pas du tout comment faire pour eviter ca.
Si quelqu'un pouver m'aider.
Merci d'avance
une partie de mon code:
int iTabChiffres[25]={1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,25,25,50,50,100};
int iTabChoix[6];
srand((int)time(NULL));
iResult=(rand()%1001)+1;
printf("Voici les 6 numeros:");
for(iBcl=0; iBcl<=5; iBcl++){
iHasard=(rand()%25);
iTabChoix[iBcl]=iTabChiffres[iHasard];
printf("%d\t",iTabChoix[iBcl]);
}
je souhaite remplir le tableau itabchoix avec des valeurs de itabchiffres qui sont prises au hasard; pour l'instant y a pas de probleme ,j'ai reussi a faire.
je dois faire en sorte d'avoir un "ihasard" different pour chaque case que je vais remplir de itabchoix.
En gros si ihasard=14 par ex => itabchoix[0]=itabchiffres[14] càd 7
En suite si ihasard=2 par ex => itabchoix[1]=itabchiffres[2] càd 1
et ainsi de suite pour chaque case.
il faut juste que ihasard ne soit pas egal a 14 et 2 les cas suivants.
Si une case du tableau itabchiffres a été utiliser, il faut qu'il ne puisse pas etre reutilliser.
Je sais pas du tout comment faire pour eviter ca.
Si quelqu'un pouver m'aider.
Merci d'avance
4 réponses
-
Je ne suis pas sur que la méthode de permutation soit la plus simple...
je modifierai iTabchiffre :for(iBcl=0; iBcl<=5; iBcl++){ do{ iHasard=(rand()%25); if(iTabChiffres[iHasard]==0)continue; iTabChoix[iBcl]=iTabChiffres[iHasard]; printf("%d\t",iTabChoix[iBcl]); iTabChiffres[iHasard]=0; break; }while(1) }-
-
-
-
-
j'ai testé le code que tu m'as donné et ca marche nickel ty
Si je peux te demander un dernier truc si ca te derange pas (ca serait vraiment sympa) tu peux m'expliquer en quelque ligne les etapes de ce programme stp.
vu que j'ai jamais utilisé de "continue" ou de break dans un "do" et que je vais passer a l'oral je voudrais pouvoir repondre au prof quand il va me demander que fais cette partie du code, a quoi sert le continue? pourquoi avoir mis un break? pourquoi avoir mis la condition du while a 1? ect..
MERCI D'AVANCE
-
-
Bonjour;
Le plus simple à mon humble avis est de mélanger le tableau iTabChiffres en faisant une dizaine de permutation. Ensuite, il ne te restera qu'à prendre les 6 premières valeurs pour les mettre dans iTabChoix.
Cdlt, -
-
ok et comment je fais pour permuter les valeurs du tableau itabchiffres?
je trouve pas comment faire (je debute en c^^)