Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 将rand()的输出放入数组_C_Arrays_Random - Fatal编程技术网

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

C 将rand()的输出放入数组,c,arrays,random,C,Arrays,Random,我编写了一个小的掷骰子程序,它将打印出无论输入多少个掷骰子的结果。我想计算每个数字出现的次数,所以我想将rand()函数的输出放入一个数组,然后在数组中搜索不同的值。我不知道如何将数字放入非手动输入的数组中 #include <stdio.H> #include <stdlib.h> #include <time.h> int main(void) { int count; int r

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

    #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;
      }
#包括
#包括
#包括
内部主(空)
{
整数计数;
整流罩;
srand(时间(空));
printf(“掷多少骰子?\n”);
scanf(“%d”、&count);
printf(“\nDice Rolls\n”);
对于(滚动=0;滚动<计数;滚动++)
{
printf(“%d\n”,rand()%6+1);
}
返回0;
}
#包括
#包括
#包括
内部主(空)
{
整数计数;
整流罩;
国际*历史;
srand(时间(空));
printf(“掷多少骰子?\n”);
scanf(“%d”、&count);
历史=malloc(sizeof(int)*计数);
如果(!历史)
{
printf(“无法处理那么多骰子!\n”);
出口(-1);
}
printf(“\nDice Rolls\n”);
对于(滚动=0;滚动<计数;滚动++)
{
历史[滚动]=兰德()%6+1;
printf(“%d\n”,历史记录[roll]);
}
//在这里做一些有趣的历史
自由(历史);
返回0;
}

只需将其放入数组中即可

for (roll = 0; roll < count; roll++)
{
    myArray[roll] = rand() % 6 + 1;
    printf("%d\n", myArray[roll] );
}
for(roll=0;roll
如果要跟踪每个结果的出现次数,甚至不需要保存每个骰子卷

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);
}
int结果[6]={};//初始化6个int元素的数组
int current=0;//保存当前随机数
对于(滚动=0;滚动<计数
{
当前值=rand()%6;
result[current]+;//将一个添加到当前随机数的结果[n]
printf(“%d\n”,当前+1);
}

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

请记住,您的解决方案没有考虑到用户正在输入一个可变数量的骰子滚动,而不是三个骰子。如果您添加分配失败检查,为什么不也添加一个坏
scanf
检查。因为我无意向他展示如何使用scanf、 这是为了向他展示如何正确分配和使用动态数组?~smile~哦,太好了!一个新用户。这里没有
。我想你的意思是
。你在读哪本书?是的,那是一个打字错误。我有格雷格·佩里的《C入门指南》第二版和斯蒂芬·普拉塔的《C初级入门指南》,第五版。欢迎来到StackOverflow,@Jon.Why,谢谢。是的,这是正确的特瓦尔伯格,所以也谢谢你的纠正。
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);
}