-2

嘿,我想问一下我是否有一个单词列表,比如“老虎、狮子、大象、斑马、马、骆驼、鹿、鳄鱼、兔子、猫”,我可以在 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; 
}
4

3 回答 3

3

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

于 2010-08-15T04:40:30.260 回答
1

您可以执行以下操作:

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

一旦你完成了这么多,请粘贴你的代码。希望你能理解这个问题的逻辑。

于 2010-08-15T09:06:53.250 回答
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();
    }
}
于 2010-08-15T04:44:05.267 回答