想这个也想了比较多,一般的思路就是相加,相加多少,但是还是感觉争议很大。在论坛上,也没有细看大师们的解答,自己今天的状态不好,晕。
所以,这里只是贴出我的代码,记录下。欢迎大牛指教!
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int rand7();
int rand10();
int main(void)
{
int i;
int a[10]={0,};
srand((unsigned int)time(NULL));
for(i = 0;i < 10000;i++)
{
a[rand10()-1]++;
}
for(i=0;i<10;i++)
{
printf("%4d ",a[i]);
printf("%s\n","numbers");
}
return 0;
}
int rand7()
{
int temp = rand() % 7 +1 ;
return temp;
}
int rand10()
{
int temp ;
int xi;
while((temp = rand7()) < 6)
;
if(temp >= 6)
{
if(temp == 6) xi = 1;
else xi = 0;
while((temp = rand7())>5)
;
}
if(xi == 1)
return temp;
else
return temp + 5;
}
貌似rand()函数也不是绝对的随机的。