CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

melanger aletoirement un mot en C

Le_sims01
Le_sims01
Niveau 10
10 février 2005 à 10:35:51

salut,

je cherche le moyen de melanger un mot ( chaine de caractere) mais aleatoirement.

je n´y arrive pas parceque parfois certaines lettre en remplacent d´autres ( mon random retombe sur le meme nombre alors qu´y fau pas)

par exemple: " mot" devient " to."

Le_sims01
Le_sims01
Niveau 10
10 février 2005 à 14:53:52

:up: :up: :up:

dnob700
dnob700
Niveau 10
10 février 2005 à 16:28:15

tu fait un tableau de bool de la même taille que le mots à mélangé et à chaque fois que tu écrit une nouvelle lettre, tu mets dans le tableau de bool que cette lettre est utilisé.

si une lettre que tu veux écrire est déjà utilisé, alors tu cherche un nouvel emplacement au hasard.

Le_sims01
Le_sims01
Niveau 10
10 février 2005 à 16:38:47

mais si il y a des memes lettres dans un mot?

en tout cas c´est une bonne idée, je vais essayé de creusé ça un peu.

dnob700
dnob700
Niveau 10
10 février 2005 à 17:35:03

c´est pas un problème, t´as pas compris ce que j´ai dit, un exemple :

char mot[20];
char nmot[20];
bool use[20];
int i,j,k;
j=lenght(mot); / /je sais pas si c´est lenght la fonction, j´utilise pas les ofnction de base pour les chaines.

for ( i=0;i<j;i++)
use[i]=false;

cin < < mot;

for ( i=0;i<j;i++)
{
k=rnd()%j;
while ( use[k])
k=rnd()%j;
use[k]=true;
nmot[k]=mot[i];
}

Le_sims01
Le_sims01
Niveau 10
10 février 2005 à 20:24:41

ah oué je vois maintenant, en faite je savais pas c´etait quoi un tableau de bool. mais j´ai compri l´algo maintenant.

par contre j´ai pas compris le while ( use[k]) , il faut pas mettre un test du genre =, > ...

dnob700
dnob700
Niveau 10
10 février 2005 à 21:49:18

non, car while ( truc) ça vaut dire fait le tant que truc est vrai.

et pour nous, tant que truc est vraie ça veut dire tant qu´il y a déjà une lettre à cette emplacement.

en gros si tu fait 2>3 ça te renvoie un bool, mais notre tableau est déjà un bool ( c´est ça qui est important).

tu peut l´écrire mieux en mettant :
do
k=rand()%j; / /et non pas rnd...
while ( use[k]);

et en supprimant le premier k=... que j´avais mis totu à l´heure.

Le_sims01
Le_sims01
Niveau 10
16 février 2005 à 14:47:48

ok merci je vais essayé

lag-it
lag-it
Niveau 10
16 février 2005 à 15:21:25

Pseudocode :

Tant que : compteur inférieur à nombre de permutations désirée
Faire :
Choisir un entier " x" compris entre 0 et strlen(mot)
Choisir un entier " y" compris entre 0 et strlen(mot)
stocker mot[x] dans une variable temporaire
mot[x] = mot[y]
mot[y] = variable temporaire ou fut stocké mot[x]
Finfaire

( Tien au fait dnob, on pourrait pousser ton concept de basique/C pour faire un langage de prog pseudocode :) )

Sous forums
  • Aide à l'achat Mac
  • Macintosh
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Steam Deck
  • Hardware
La vidéo du moment