我使用的是种子0。我无法正确生成数量的不同数字。似乎只是输出输入的数字,然后输出一个数字。
这应该是询问用户要在0到99范围内生成多少个数字,然后生成那么多数字并输出生成的100个不同的数字。尝试更改我声明包含随机数的变量的位置。我不确定我还能尝试什么。
#include <stdio.h>
#include <stdlib.h>
int main (void) {
srand(0);
int numRandoms = 0;
int i = 0;
int difNums = 0;
printf("How many random numbers to generate:\n");
scanf("%d", &numRandoms);
int ranNums[numRandoms];
for (i = 0; i < numRandoms; ++i) {
ranNums[i] = (rand () % 100);
}
for (i = 1; i <= numRandoms; ++i) {
if (ranNums[i] != ranNums[i - 1]) {
++difNums;
}
}
printf("%d out of 100 numbers were generated after %d attempts\n", difNums, numRandoms);
return 0;
}
用户输入1时,预期输出: “ 1次尝试后,每100个数字中就有1个产生” 我得到“ 1次尝试后生成的100个数字中有0个”
当用户输入25时,预期输出: “在25次尝试后生成了100个数字中的23个” 我得到“ 25次尝试后生成的100个数字中有24个”
当用户输入250时,预期输出: “经过250次尝试,生成了100个号码中的93个” 我得到“ 250次尝试后生成的100个数字中有247个”
当用户输入1000000时,预期输出: “ 1,000,000次尝试后生成了100个数字中的100个” 我收到“分段错误(核心已转储)”