首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将rand()的输出放入数组

将rand()的输出放入数组
EN

Stack Overflow用户
提问于 2013-04-25 23:43:05
回答 3查看 274关注 0票数 0

我写了一个小的掷骰子程序,它将打印出输入多少掷骰子的结果。我想要计算每个数字出现的次数,所以我想我应该将rand()函数的输出放入一个数组中,然后在该数组中搜索不同的值。我不知道如何将非手动输入的数字放入数组中。

代码语言:javascript
运行
复制
    #include <stdio.H>
    #include <stdlib.h>
    #include <time.h>

    int main(void)
    {
        int count; 
        int roll;  

        srand(time(NULL));

       printf("How many dice are being rolled?\n");
       scanf("%d", &count);

       printf("\nDice Rolls\n");
       for (roll = 0; roll < count; roll++)
       {
         printf("%d\n", rand() % 6 + 1);
       }
       return 0;
      }
EN

回答 3

Stack Overflow用户

发布于 2013-04-25 23:47:11

代码语言:javascript
运行
复制
    #include <stdio.H>
    #include <stdlib.h>
    #include <time.h>

    int main(void)
    {
        int  count; 
        int  roll;  
        int* history;

        srand(time(NULL));

        printf("How many dice are being rolled?\n");
        scanf("%d", &count);

        history = malloc( sizeof(int) * count );

        if( !history )
        {
            printf( "cannot handle that many dice!\n" );
            exit( -1 );
        }

        printf("\nDice Rolls\n");
        for (roll = 0; roll < count; roll++)
        {
          history[roll] = rand() % 6 + 1;
          printf("%d\n", history[roll]);
        }

        // do something interesting with the history here

        free( history );
        return 0;
      }
票数 2
EN

Stack Overflow用户

发布于 2013-04-25 23:47:13

只需将其放入数组即可

代码语言:javascript
运行
复制
for (roll = 0; roll < count; roll++)
{
    myArray[roll] = rand() % 6 + 1;
    printf("%d\n", myArray[roll] );
}
票数 0
EN

Stack Overflow用户

发布于 2013-04-25 23:59:36

如果您想要跟踪每个结果的出现次数,您甚至不需要保存每个掷骰子。

代码语言:javascript
运行
复制
int result[6] = {} ; // Initialize array of 6 int elements
int current = 0; // holds current random number
for (roll = 0; roll < count
{
     current = rand() % 6;
     result[current]++; // adds one to result[n] of the current random number
     printf("%d\n", current+1);
}

在此之后,您将有一个数组0-5 (结果),每个元素包含每次出现的编号(您将需要添加元素编号+1以获得实际的滚动)。即。结果是“1”的出现次数。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16219164

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档