Tableau en c
Résolu
abali12
Messages postés
58
Statut
Membre
-
Char Snipeur Messages postés 10112 Statut Contributeur -
Char Snipeur Messages postés 10112 Statut Contributeur -
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
A voir également:
- Tableau en c
- Tableau word - Guide
- Tableau ascii - Guide
- Trier un tableau excel - Guide
- Tableau croisé dynamique - Guide
- Imprimer tableau excel sur une page - Guide
4 réponses
Je ne suis pas sur que la méthode de permutation soit la plus simple...
je modifierai iTabchiffre :
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)
}
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,
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,
C'est certaiment la plus simple pour toi abali12.
Juste une question comment on declare le "continue" parcequon a pas encore vu ca.
Effectivement, je n'avais pas à faire comme ça. Cela est moins performant je pense dans le cas où iBcl approche de 25 mais dans ce cas, c'est mieux. Bien vu ;-)))
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