从c编程中的单词列表中生成随机单词

时间:2010-08-15 04:36:17

标签: c random word generator

嘿,我想问我是否有一个单词列表让我们说'老虎,狮子,大象,斑马,马,骆驼,鹿,鳄鱼,兔子,猫' 我可以在c编程中随机生成5个单词吗? 例如:

老虎,斑马,猫,鹿,马

鳄鱼,兔子,骆驼,斑马,大象

等等

提前谢谢你:D

修改

#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; 
}

3 个答案:

答案 0 :(得分:3)

将单词放入数组中。在正确的范围内生成5个(或其他)伪随机数(0..array_size-1)。使用这些数字从数组中选择单词。

答案 1 :(得分:1)

您可以执行以下操作:

  1. 您已经拥有一个包含元素(动物名称)的数组
  2. 您可以通过索引访问每个元素,例如k,您可以像arr2[k]一样访问数组元素。
  3. 现在你需要每次都获得一个分配给k的随机数。这可以通过使用标准库的rand函数来完成,您可能以错误的方式调用了该函数
  4. 打印出值后,您需要跟踪它,因此请使用整数数组check[SIZE] = {0,},然后在打印arr2[k]之前,检查是否check[k]==0然后打印该值。打印后设置arr2[k]=1
  5. 完成此操作后,请粘贴代码。希望你能理解这个问题的逻辑。

答案 2 :(得分:0)

为了便于说明,这是C#,但我确信你可以很容易地转换为C语言:

    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();
    }
}