2010-08-15 20 views
-2

hey, je veux demander si j'ai une liste de mots disons 'tigre, lion, éléphant, zèbre, cheval, chameau, cerf, crocodile, lapin, chat' comment puis-je générer 5 mots de la liste au hasard dans la programmation c? par exemple:générer des mots aléatoires de la liste des mots dans la programmation c

tigre

, zèbre, chat, cerfs, chevaux

ou

crocodile, lapin, chameau, zèbre, éléphant

ect

merci à l'avance: D

Modifier:

#include <stdio.h> 
#include <string.h> 

#define SIZE 10 

int main() 
{ 

char arr2[SIZE][20] = { "tiger", "lion", "elephant", "zebra", "horse", "camel", "deer", "crocodile", "rabbit", "cat" }; 

int x = 0; 
srand(time(NULL)); 

while (x < SIZE - 5) 
{ 
    arr2 [x][20] = rand(); 
    printf ("%s\n", arr2[x]); 
    x++; 
} 

system ("pause"); 
return 0; 
} 
+6

Qu'as-tu jusqu'à présent? –

+2

sent pour moi devoirs –

+1

Quelle ligne 'arr2 [x] [20] = rand();' suppose de faire? – qrdl

Répondre

3

Placez les mots dans un tableau. Générer 5 (ou n'importe quoi) des nombres pseudo-aléatoires dans la bonne gamme (0..array_size-1). Utilisez ces chiffres pour choisir les mots du tableau.

+0

je suis flou ... je ne comprends pas. :(désolé – falcon

0

À titre d'illustration, c'est C#, mais je suis sûr que vous pouvez convertir en C, assez facilement:

static void Main(string[] args) 
    { 
     string[] words =  
       { "tiger", "lion", "elephant", "zebra", "horse", 
        "camel", "deer", "crocodile", "rabbit", "cat" }; 

     string randomWords = RandomWords.GenerateRandomWordString(5, words); 
    } 


public static class RandomWords 
{ 
    private static readonly Random _random = new Random((int)DateTime.Now.Ticks); 

    public static string GenerateRandomWordString(int numWords, string[] words) 
    { 
     int maxlen = words.Length; 

     StringBuilder sb = new StringBuilder(); 
     for (int i = 0; i < numWords; i++) 
     { 
      // Note: in .NET, Random.Next(0, max) returns 
      // a value in range zero to max - 1 
      sb.Append(words[_random.Next(0, maxlen)]); 
      sb.Append(" "); 
     } 

     return sb.ToString().Trim(); 
    } 
} 
+0

merci beaucoup !! mais sérieusement, je ne sais pas comment le convertir en c ... oh ... je suis vraiment un stupide =. = " – falcon

+2

@falcon: cela peut être guéri par l'apprentissage, l'écoute et de telles choses, vraiment –

+1

@falcon: qu'avez-vous essayé? t se convertir ... –

1

Vous pouvez effectuer les opérations suivantes:

  1. Vous avez déjà un tableau qui contient les éléments (noms des animaux)
  2. Vous pouvez accéder à chaque élément par un index, disons k et vous pouvez accéder aux éléments du tableau comme ceci arr2[k].
  3. Vous devez maintenant attribuer un nombre aléatoire à k à chaque fois. Cela peut être fait en utilisant la fonction rand de la bibliothèque standard que vous avez probablement appelée mais de manière incorrecte
  4. Une fois que vous avez imprimé une valeur, vous devez en garder trace, utilisez donc un tableau d'entiers check[SIZE] = {0,} et avant d'imprimer arr2[k], vérifiez si check[k]==0 puis imprimez la valeur. Après l'impression définir arr2[k]=1.

Une fois que vous en avez fini avec cela, collez votre code. J'espère que vous comprendrez la logique de ce problème.