本人初学c,验证一个概率问题,在执行的时候发现就算用了srand函数的得到的随机数也是重复的,有没有帮看一下是什么问题
该回答引用GPTᴼᴾᴱᴺᴬᴵ
这个程序有一些问题。以下是修复后的代码:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
int n = 0;
int a[101];
float g = 0, i = 1000;
srand(time(0));
while(i > 0) {
for (int k = 0; k < 10; k++) {
a[k] = rand() % 100 + 1;
for (int m = 0; m < k; m++) {
if (a[m] == a[k]) {
k--;
break;
}
}
}
for (int b = 0; b < 10; b++)
printf("%d ", a[b]);
printf("\n");
for (int c = 0; c < 10; c++) {
if (a[c] == c+1) {
n++;
break;
}
}
i--;
}
g = n / 1000.0;
printf("发生的次数是%d(n概率是%f)\n", n, g);
return 0;
}
主要修改如下:
srand函数要写在循环外