C++ c++;兰德()%100
我试图用随机的200个数字填充一个数组,这些数字可以从0到100。我得到它填充除了最后几对数字是非常奇怪的 这是我的密码C++ c++;兰德()%100,c++,arrays,random,populate,C++,Arrays,Random,Populate,我试图用随机的200个数字填充一个数组,这些数字可以从0到100。我得到它填充除了最后几对数字是非常奇怪的 这是我的密码 for (int i = 0; i < NUM_LIST_ELEMENTS; i++) { int j = rand() % 100; list[i] = j; } 请注意,每个数组中的最后一个数字都非常奇怪。我能做些什么来避免这种情况吗?顺便说一句,这是两个不同的阵列 谢谢所有发帖子的人!我让它工作了您正在读取数组末尾以外的一个
for (int i = 0; i < NUM_LIST_ELEMENTS; i++)
{
int j = rand() % 100;
list[i] = j;
}
请注意,每个数组中的最后一个数字都非常奇怪。我能做些什么来避免这种情况吗?顺便说一句,这是两个不同的阵列
谢谢所有发帖子的人!我让它工作了您正在读取数组末尾以外的一个 e、 g.如果用200个元素填充数组,则应该从0到199写入和读取,而不是从0到200或从1到200 顺便说一下,-rand()%100不会生成0到100之间的数字。它将只生成0到99之间的数字
另外,正如Randy Howard所说(谢谢),您可以按照上的建议进行更均匀的随机生成。这可能是因为打印结果的代码有问题。您可能正在从索引0循环到200,其中有201项 我数了数你的输出,发现有201项,如果最后的77-33686019实际上是两个独立的数字 如果不是这样的话,您可能会在代码后面的某个地方有一些printf/cout,它实际上会打印一些其他值。要确认这一点,您可能可以尝试
printf(“\n”)代码>就在输出数组的循环之后。如果你的负数出现在另一行,你就会知道它是你代码后面的另一个printf
您可能需要使用int j=rand()%101改为编码>以便得到0到100。原始代码提供了0到99之间的随机范围。我认为数组的大小比NUM\u LIST\u元素大一倍。您确定数组边界正确吗?尝试使用for(int i=0;i14-858993460
和77-33686019
之间没有任何空格。Mod是将rand值拟合到一个范围内的一种非常不可取的方法。可能比您想知道的要多,但请看这里:除此之外,请参阅下面关于无效数组索引的答案。您显示的每个数组都包含201个元素。(将最后一个输出作为两个独立的数字计算)你计算过他的输出中的数字吗?@AndréPuel我计算过201吗?
41 67 34 0 69 24 78 58 62 64 5 45 81 27 61 91 95 42 27 36 91 4 2 53 92 82 21 16 18
95 47 26 71 38 69 12 67 99 35 94 3 11 22 33 73 64 41 11 53 68 47 44 62 57 37 59 23 41
29 78 16 35 90 42 88 6 40 42 64 48 46 5 90 29 70 50 6 1 93 48 29 23 84 54 56 40 66
76 31 8 44 39 26 23 37 38 18 82 29 41 33 15 39 58 4 30 77 6 73 86 21 45 24 72 70 29
77 73 97 12 86 90 61 36 55 67 55 74 31 52 50 50 41 24 66 30 7 91 7 37 57 87 53 83 45
9 9 58 21 88 22 46 6 30 13 68 0 91 62 55 10 59 24 37 48 83 95 41 2 50 91 36 74 20
96 21 48 99 68 84 81 34 53 99 18 38 0 88 27 67 28 93 48 83 7 21 10 17 13 14-858993460
9 16 35 51 0 49 19 56 98 3 24 8 44 9 89 2 95 85 93 43 23 87 14 3 48 0 58 18 80
96 98 81 89 98 9 57 72 22 38 92 38 79 90 57 58 91 15 88 56 11 2 34 72 55 28 46 62 86
75 33 69 42 44 16 81 98 22 51 21 99 57 76 92 89 75 12 0 10 3 69 61 88 1 89 55 23 2
85 82 85 88 26 17 57 32 32 69 54 21 89 76 29 68 92 25 55 34 49 41 12 45 60 18 53 39 23
79 96 87 29 49 37 66 49 93 95 97 16 86 5 88 82 55 34 14 1 16 71 86 63 13 55 85 53 12
8 32 45 13 56 21 58 46 82 81 44 96 22 29 61 35 50 73 66 44 59 92 39 53 24 54 10 45 49
86 13 74 22 68 18 87 5 58 91 2 25 77 14 14 24 34 74 72 59 33 70 87 97 18 77-33686019