怎样产生0\1随机数,0占70%,1占30%?
产生随机数后放至10x10数组中。请高手回答,谢谢!
/* C 程序,用一个函数是产生的数 30% 是 1 。
int nn_rand(void)
{
int arr[10] = {0,1,0,1,0,0,0,1,0,0}; // 数字序列,7个0,3个1。
return arr[rand() % 10];
}
*/
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int nn_rand(void)
{
int arr[10] = {0,1,0,1,0,0,0,1,0,0};
return arr[rand() % 10];
}
void show_arr(int * p)
{
int i = 0;
while(i < 100)
{
printf("%d ", p[i]);
if((++i % 10) == 0)
putchar('\n');
}
}
int arr_n(int * p)
{
int i;
int count = 0;
for(i = 0; i < 100; i++)
{
if(p[i])
++count;
}
return count;
}
int main(void)
{
int n;
int i;
int arr[100];
srand((unsigned int)time(0));
puts("请按回车开始");
while(getchar() != 'q')
{
for(i = 0; i < 100; i++)
arr[i] = nn_rand();
show_arr(arr);
printf("\n1 占%%%d 。\n\n", arr_n(arr));
}
getchar();
return 0;
}